当ItemTemplate中嵌入了验证控件时,为什么GridView的命令按钮无法正常启动? 如果你甚至无法在客户端验证用户的输入,那么允许EditItemTemplate有什么意义呢?!!!
头痛并不难重现,只需创建一个简单的GridView,其中至少有一列是TemplateField。在EditItemTemplate上放置一个文本框和一个RequiredFieldValidator。
是否有人针对此问题/问题/头痛解决了这个问题?
答案 0 :(得分:0)
我猜你没有按钮的ValidationGroup。请尝试这样的事情:
<asp:Button ID="Button1" runat="server" ValidationGroup='GridView1' CausesValidation='true' Text="Button" />
答案 1 :(得分:0)
您需要像这样设置ASPxTextBox ValidationGroup:
<EditItemTemplate>
<dx:ASPxTextBox ValidationSettings-ValidationGroup='<%# Container.ValidationGroup %>' ../>
</EditItemTemplate>
查看here以获取详细说明。
答案 2 :(得分:0)
我刚刚解决了这个问题。
如果要将验证放在gridview中的某个列中,则将该列更改为模板。像往常一样添加验证器,给它验证组名称(像往常一样)。然后在命令字段编辑更新列,将该列也转换为模板字段,然后为“更新”文本链接设置验证组名称。
希望有所帮助。答案 3 :(得分:0)
我遇到了类似的问题。 QA报告更新命令未在我们为用户设置设置的DatGrid上触发。在DataGrid之外,我们碰巧有两个隐藏的输入字段,只有在某些设置到位时才可见。但是,我在测试中注意到点击更新增加了这些字段所在的div的总高度;即这些字段的验证控件正在触发。
问题肯定与验证控件的ValidationGroup设置有关。
Wan的答案有点帮助,但是我没有必要将EditCommandColumn转换为模板字段,只需要在EditItemTemplate中将ValidationGroup属性与Validation控件一起添加。下面的示例基于对我有用的实现:
<div class="row">
<div runat="server" id="divConfirm">
<div class="formfields float-off form-group">
<div class="col-xs-4 text-right">
<p class="align-middle">Field 1</p>
</div>
</div>
<div class="formfields float-off form-group">
<div class="col-xs-4">
<input runat="server" id="confirm1" name="confirm1" />
<!-- this control was firing prior to adding the validation group -->
<asp:RequiredFieldValidator runat="server" ID="valConfirmReq"
Display="Dynamic" ControlToValidate="confirm1"
ErrorMessage="*You must confirm etc. message">
</asp:RequiredFieldValidator>
</div>
</div>
</div>
</div>
<asp:DataGrid ID="DataGrid1" runat="server" OnEditCommand="DataGrid_EditCommand"
OnCancelCommand="DataGrid1_CancelCommand"
OnUpdateCommand="DataGrid1_UpdateCommand">
<Columns>
<asp:EditCommandColumn EditText="Edit" HeaderText="Edit"
UpdateText="Update" CancelText="Cancel" ValidationGroup="DataGrid1">
<%-- DataGrid code --%>
<asp:TemplateColumn>
<EditItemTemplate>
<asp:DropDownList ID="ddl1" runat="server"></asp:DropDownList>
<asp:RequiredFieldValidator ID="rfvDDL" runat="server"
ErrorMessage="*Please Select"
ValidationGroup="DataGrid1"
Display="Dynamic"
ControlToValidate="ddl1"
InitialValue="Select">
</asp:RequiredFieldValidator>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>