Пытается получить доступ к элементу RequiredFieldValidator, находящемуся внутри GridView в событии RowCommand и имеющему проблемы.ASP.NET - получить контроль над событием RowCommand
Вот частичный GridView код:
<asp:TemplateField HeaderText="Password">
<ItemTemplate>
<asp:TextBox ID="txtPassword" runat="server" CssClass="GridViewTextbox" TextMode="Password" Text='<%#Eval("WebPassword") %>' Enabled="false"></asp:TextBox>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtWebPassword" runat="server" TextMode="Password" Text='<%#Eval("WebPassword") %>'></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvPassword" runat="server" SetFocusOnError="true"
ControlToValidate="txtWebPassword" Display="None" ErrorMessage='<%# Constants.Strings.PasswordRequired %>'></asp:RequiredFieldValidator>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtAddWebPassword" runat="server" TextMode="Password"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvAddPassword" runat="server" SetFocusOnError="true"
ControlToValidate="txtAddWebPassword" Display="None" ErrorMessage='<%# Constants.Strings.PasswordRequired %>'></asp:RequiredFieldValidator>
</FooterTemplate>
</asp:TemplateField>
Как вы можете видеть, что есть ВРС для EditTemplate и FooterTemplate. Моя проблема такова; когда страница загружается, у нее есть все записи в ней, включая строку emtpy внизу (Footer). Если я нажму «Редактировать» в заполненной строке, данные будут заполнены правильно, а затем, когда я нажму UPDATE, я получаю все сообщения об ошибках от выключения FOOTER RFV, что неверно. Итак, в событии RowCommand я хотел бы попробовать: если пользователь нажимает кнопку EDIT, отключите все RFV в нижнем колонтитуле (добавьте новую строку), если они нажмут что-нибудь еще, включите их.
Идеи?
Извините, это было сделано, чтобы отправить это в первый раз. В случае RowCommand, я смог найти контроль, но когда я установить свойство что-то поддельным, кажется, чтобы переопределить позже, в случае RowDataBound:
RequiredFieldValidator rfv = (RequiredFieldValidator)gvUsers.FooterRow.FindControl("rfvAddWebLogin");
rfv.ControlToValidate = string.Empty;
rfv.ErrorMessage = "sdfgsdfgsdgsdfgsdfgsdfgsdfg";
rfv.Enabled = false;
Что является пустая строка для - вы на самом деле нужно? – dash
Да, пустая строка предназначена для вставки новой строки. – Robert