Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在按钮上单击复选框选中C中的验证#_C#_Asp.net_Validation_Checkbox - Fatal编程技术网

C# 在按钮上单击复选框选中C中的验证#

C# 在按钮上单击复选框选中C中的验证#,c#,asp.net,validation,checkbox,C#,Asp.net,Validation,Checkbox,我有一个场景,我在Gridview中显示数据。现在我想要的是,有两个按钮,分别是Approve和Reject。我想验证在单击其中一个按钮之前至少应选中一个复选框 下面是我的HTML <asp:GridView ID="grdDisplayCMMData" runat="server" AutoGenerateColumns="false" Width="100%" ShowHeaderWhenEmpty="true" CssClass="heavyTable table" EmptyDat

我有一个场景,我在
Gridview
中显示数据。现在我想要的是,有两个按钮,分别是
Approve
Reject
。我想验证在单击其中一个
按钮之前至少应选中一个复选框

下面是我的HTML

<asp:GridView ID="grdDisplayCMMData" runat="server" AutoGenerateColumns="false" Width="100%" ShowHeaderWhenEmpty="true" CssClass="heavyTable table" EmptyDataText="No records to display"
    AllowPaging="true" PageSize="20" OnPageIndexChanging="grdDisplayCMMData_PageIndexChanging">
    <Columns>
        <asp:BoundField DataField="ID" HeaderText="Id" ItemStyle-Width="10%" />
        <asp:BoundField DataField="SAP_ID" HeaderText="Sap Id" ItemStyle-Width="10%" />
        <%--<asp:BoundField DataField="ID_OD" HeaderText="ID to OD" ItemStyle-Width="10%" />--%>
        <asp:BoundField DataField="ID_OD_COUNTCHANGE" HeaderText="ID to OD Change" ItemStyle-Width="10%" />
        <asp:BoundField DataField="ID_OD_CHANGEDDATE" HeaderText="ID to OD Change Date" ItemStyle-Width="10%" />
        <asp:BoundField DataField="RRH_COUNTCHANGE" HeaderText="RRH Count Change" ItemStyle-Width="10%" />
        <asp:BoundField DataField="RRH_CHANGEDDATE" HeaderText="RRH Count Change Date" ItemStyle-Width="10%" />
        <asp:BoundField DataField="TENANCY_COUNTCHANGE" HeaderText="Tenancy Count Change" ItemStyle-Width="10%" />
        <asp:BoundField DataField="TENANCY_CHANGEDDATE" HeaderText="Tenancy Changed Date" ItemStyle-Width="10%" />
        <asp:BoundField DataField="STATUS" HeaderText="Current Status" ItemStyle-Width="20%" />

        <asp:TemplateField HeaderText="Approve/Reject">
            <ItemTemplate>
                <asp:CheckBox ID="chkApprRejCMM" runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

<div class="text-center">
    <asp:Button ID="btnApproveCMM" Text="Approve" runat="server" OnClick="btnApproveCMM_Click" CssClass="btn btn-primary" />
    <asp:Button ID="btnRejectCMM" Text="Reject" runat="server" OnClick="btnRejectCMM_Click" CssClass="btn btn-primary" />
</div>
我尝试了获取复选框计数的逻辑,如果它小于
0
,则提示一个错误。但是在Checkbox中没有获取计数的属性


请建议使用CustomValidator执行此操作的任何其他方法

<asp:CustomValidator ID="CustomValidator1" runat="server" ClientValidationFunction="countCheckBoxes" 
    ErrorMessage="Check at least one"></asp:CustomValidator>

然后是测试是否选中任何复选框的函数

<script type="text/javascript">
    function countCheckBoxes(oSrc, args) {
        var cnt = $('<%# GridView1.ClientID %> input[type=checkbox]:checked').length;
        args.IsValid = cnt > 0;
    }
</script>

函数计数复选框(oSrc、参数){
var cnt=$('input[type=checkbox]:checked')。长度;
args.IsValid=cnt>0;
}

您可以按照以下步骤操作

  • 在复选框中添加一些随机类名“XYZ”
  • 2.将OnClientClick事件添加到按钮

    > <asp:Button ID="btnApproveCMM" Text="Approve" runat="server"
    > OnClick="btnApproveCMM_Click" CssClass="btn btn-primary" OnClientClick
    > = "javascript:return CheckData(); " />
    
    >OnClick=“btnaprovecmm\u单击“CssClass=“btn btn primary”OnClick
    >=“javascript:返回CheckData();”/>
    
    3.使用Jquery检查是否至少选中了一个复选框,如果在CheckData函数中未选中,则返回false

    `

    ` if($('input.xyz:checked').length>0){返回false;}否则返回true

    `

    `
    如果函数返回false,则不会发生回发。

    让我检查一下。但它也会申请拒绝吗?它适用于两个按钮。如果您只想批准,则需要在Validator和按钮上使用相同的
    ValidationGroup
    。如果两个按钮都需要,则为所有三个按钮指定相同的ValidationGroup(如果页面上没有更多按钮,则为none)。
    > <asp:Button ID="btnApproveCMM" Text="Approve" runat="server"
    > OnClick="btnApproveCMM_Click" CssClass="btn btn-primary" OnClientClick
    > = "javascript:return CheckData(); " />