我在GridView中有三个复选框,但用户只能选择一个复选框。所以如果他们选择第一个复选框,我需要提醒他们他们不能选择其他两个。检查GridView中的复选框是否勾选
<asp:GridView CssClass="tblResults" runat="server" ID="dgDetails"
OnRowDataBound="dgDetails_ItemDataBound"
DataKeyField="ID" AutoGenerateColumns="false"
AlternatingRowStyle-BackColor="#EEEEEE">
<HeaderStyle CssClass="tblResultsHeader" />
<Columns>
<asp:TemplateField HeaderText="Approved1">
<ItemTemplate>
<asp:CheckBox runat="server" ID="chkApproved1" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Approved2">
<ItemTemplate>
<asp:CheckBox runat="server" ID="chkApproved2" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Approved3">
<ItemTemplate>
<asp:CheckBox runat="server" ID="chkApproved3" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
后面的代码:
protected void dgDetails_ItemDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
GridView gv = sender as GridView;
Quote.QuoteDetails qd = e.Row.DataItem as Quote.QuoteDetails;
CheckBox chkApproved1 = e.Row.FindControl("chkApproved1") as CheckBox;
CheckBox chkApproved2 = e.Row.FindControl("chkApproved2") as CheckBox;
CheckBox chkApproved3 = e.Row.FindControl("chkApproved3") as CheckBox;
}
}
我试图用这样的查询:
$('#<%= chkApproved1.ClientID %>').change(function() {
if($(this).is(":checked")) {
}
});
但导致错误:在当前不存在名称 'chkApproved1'上下文。
那么如何检查GridView中的复选框是否被勾选?
只有公共页面成员中<%=...%>令牌访问。将复选框控件修饰符更改为public,它应该可以工作。 –
将一个类应用于复选框,并按类选择它们 - 无法找到该id,因为它是由gridview动态创建的,而不是先前的 – Aristos