Saturday, March 24, 2012

Validation controls in a DetailsView EmptyDataTemplate

I'm using the following code to add/edit a project and I can't get the validation to work consistently. It works fine on the edit, but unfortunately that's kind of after the fact since the user isn't supposed to be able to add a project without a project name.

1<asp:DetailsView23ID="dvProjectDetails"45DataSourceID="dsProjectDetails"67DataKeyNames="ProjectID"89Width="100%"1011AutoGenerateRows="False"1213runat="server">14151617<EmptyDataTemplate>1819<table border="1">2021<tr>2223<td class="bold_8">2425Project Name2627</td>2829<td class="bold_8">3031<asp:TextBox id="txtProjectNameAdd" enabled="true" visible="true" Width="250px" runat="server"/><br />3233<asp:CustomValidator3435ID="cvTxtProjectNameAdd"3637ErrorMessage="A project name is required to add a project."3839runat="server" />4041</td>4243</tr>4445<tr>4647<td colspan="2" align="right">4849<asp:Button5051ID="btnAddProject" OnClick="btnAddProject_Click"5253EnableTheming="false"5455CssClass="btn_8"5657Text="Add"5859ValidationGroup="addProject"6061runat="server" /></td>6263</tr>6465</table>6667</EmptyDataTemplate>6869<Fields>7071<asp:TemplateField HeaderText="Project Name" HeaderStyle-Width="110px" HeaderStyle-CssClass="bold_8" ItemStyle-HorizontalAlign="Left">7273<ItemTemplate>7475<asp:Label ID="lblProjectName" Text='<%# Eval("ProjectName") %>' runat="server" />7677</ItemTemplate>7879<EditItemTemplate>8081<asp:TextBox ID="txtProjectName" Text='<%# Bind("ProjectName") %>' Width="250px" runat="server" /><br />8283<asp:RequiredFieldValidator8485ID="rfvTxtProjectName"8687ControlToValidate="txtProjectName"8889ErrorMessage="A project name is required to add a project."9091runat="server" />9293</EditItemTemplate>9495</asp:TemplateField>9697<asp:CommandField ButtonType="Button" ValidationGroup="ProjectDetailsEdit" ControlStyle-CssClass="btn_8" ShowEditButton="True" />9899</Fields>100101</asp:DetailsView>102

Histretch73 ,

I notice that you used asp:CustomValidator in EmptyDataTemplate, try to use RequiredFieldValidator instead.


Instead of CustomValidator try using RequiredFieldValidator to validate yourtxtProjectNameAdd TextBox

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="A project name is required to add a project." ControlToValidate="txtProjectNameAdd"></asp:RequiredFieldValidator>


Needed to add the validation group attribute to the requiredFieldValidator. Duh. Thanks for the responses.

N

No comments:

Post a Comment