C# 在特定行的gridview中启用所需的字段验证器?
我已经实现了网格视图,代码行如下C# 在特定行的gridview中启用所需的字段验证器?,c#,asp.net,gridview,C#,Asp.net,Gridview,我已经实现了网格视图,代码行如下 <div class="overflowX"> <asp:GridView ID="grdView" AutoGenerateColumns="false" BorderWidth="0" OnRowCommand="grdView_RowCommand" runat="server" CssClass="table"> <Columns> <asp:TemplateFi
<div class="overflowX">
<asp:GridView ID="grdView" AutoGenerateColumns="false" BorderWidth="0" OnRowCommand="grdView_RowCommand" runat="server" CssClass="table">
<Columns>
<asp:TemplateField HeaderText="Save It">
<ItemTemplate>
<asp:CheckBox ID="chkbox" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Expiration Date">
<ItemTemplate>
<asp:TextBox ID="txtExpirationDate" style="padding:12px 5px;" placeholder="(mm/dd/yyyy)" CssClass="datepiker" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="ValReqExpD" Enabled="false" Display="Dynamic" runat="server" ErrorMessage="Expiry Date cannot be Blank." ControlToValidate="txtExpirationDate"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator Display="Dynamic" ID="ValRegExpD" runat="server" ControlToValidate="txtExpirationDate" ErrorMessage="Enter a valid Expiry Date ." ValidationExpression="([1-9]|0[1-9]|1[012])([-/.])([1-9]|0[1-9]|[12][0-9]|3[01])([-/.])(19[5-9][0-9]|20[0-4][0-9])">
<b>Enter a valid Renewal Date</b>
</asp:RegularExpressionValidator><br />
<asp:CompareValidator ID="ValCmpSD" Display="Dynamic" runat="server" ControlToCompare="txtEffectiveDate" ControlToValidate="txtExpirationDate" ErrorMessage="Expiry Date should be greater than Effective date" Operator="GreaterThan" Type="Date"></asp:CompareValidator>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
我已经尝试了上面的代码,但它不工作
请帮帮我
当前代码的问题是,当引发任何事件(如按钮单击等)时,gridView的
RowCommand
事件将被引发,但由于复选框控件未执行任何操作,因此此事件不会触发任何事件
您可以使用复选框
控件附加CheckChanged
事件,并启用如下自动回写:-
<asp:CheckBox ID="chkbox" runat="server" OnCheckedChanged="chkbox_CheckedChanged"
AutoPostBack="true"/>
protected void chkbox_CheckedChanged(object sender, EventArgs e)
{
CheckBox chkbox= sender as CheckBox;
GridViewRow currentRow = chkbox.NamingContainer as GridViewRow;
RequiredFieldValidator rfv = grdCustomer.Rows[currentRow.RowIndex]
.FindControl("ValReqED") as RequiredFieldValidator;
if (chkCustomer.Checked)
{
rfv .Enabled = true;
}
}
当前代码的问题是,当引发任何事件(如按钮单击等)时,gridView的
RowCommand
事件将被引发,但由于复选框控件未执行任何操作,因此此事件不会触发任何事件
您可以使用复选框
控件附加CheckChanged
事件,并启用如下自动回写:-
<asp:CheckBox ID="chkbox" runat="server" OnCheckedChanged="chkbox_CheckedChanged"
AutoPostBack="true"/>
protected void chkbox_CheckedChanged(object sender, EventArgs e)
{
CheckBox chkbox= sender as CheckBox;
GridViewRow currentRow = chkbox.NamingContainer as GridViewRow;
RequiredFieldValidator rfv = grdCustomer.Rows[currentRow.RowIndex]
.FindControl("ValReqED") as RequiredFieldValidator;
if (chkCustomer.Checked)
{
rfv .Enabled = true;
}
}