1

我有一个 gridview,其中包含一个模板字段复选框,用于选择每一行的数据。在这里,他们可以从网格中选择成员。

 <asp:GridView ID="dgMembers2" runat="server" AllowPaging="True" AllowSorting="True">
                        <HeaderTemplate>
                            <asp:CheckBox ID="chkBxHeader" onclick="javascript:HeaderClick(this);" runat="server"
                                Text="Select All" />
                        </HeaderTemplate>
                        <ItemTemplate>
                            <asp:CheckBox ID="CheckBox1" runat="server" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    </Gridview>

因此,当他们选择成员并单击添加然后将其插入数据库时​​,但如果他们没有从网格中选择任何复选框,我将无法显示任何错误消息。任何人都可以建议我如何使用 Javascript 检查他们是否至少检查了一个复选框然后我想显示

Javascript Alert

我尝试了很多,但我的字段是模板字段,所以我不知道如何使用它。

任何建议都将是可观的。

4

4 回答 4

1

使用下面的代码进行全选/取消全选

function HeaderClick(CheckBox, gdvClientId) {

var TargetBaseControl =     document.getElementById(gdvClientId);
            var TargetChildControl = 'chkOrder';


            var Inputs = TargetBaseControl.getElementsByTagName('input');


            for (var n = 0; n < Inputs.length; ++n)
                if (Inputs[n].type == 'checkbox' &&                                      Inputs[n].id.indexOf(TargetChildControl, 0) >= 0)
                    Inputs[n].checked = CheckBox.checked;

        }

像这样从你的 headertemplate 调用函数 HeaderClick(CheckBox, gdvClientId),gdvClientId 是你的 Gridview ID

于 2013-07-04T07:13:53.220 回答
1

也许您可以尝试将此 javascript 函数添加到 ADD 按钮 onClientClick 属性。

            function tryThis() {
        var rowscount = document.getElementById('<%=yourGridViewID.ClientID%>').rows.length;
        var chkTest = 0;
        for (var i = 0; i < rowscount-1; i++) {
            var chkName = "yourGridViewID_yourCheckBoxID_" + i;
            var chkChecked = document.getElementById(chkName).checked;
            if (chkChecked == true) {
                chkTest = 1;
                break;
            }
        }
        if (chkTest == 0) {
            alert('Nothing Checked');
        }
        else {
            alert('Something Checked');
        }
    }

希望这可以帮助。

参考:

如果复选框被选中,我如何获得?

使用 Javascript 的 ASP.NET GridView 行计数

于 2013-07-04T09:46:47.890 回答
1

添加asp.net CustomValidator控件,并设置js函数

HTML 标记:

<asp:CheckBox ID="CheckBox1" runat="server" cssClass="chkd" />

<asp:CustomValidator runat="server" ID="validcontrol" EnableClientScript="true"
ClientValidationFunction="validchkbox">required.</asp:CustomValidator>

JavaScript 函数:

function validchkbox(sender, e)
{
    e.IsValid = $(".chkd input:checkbox").is(':checked');
}

后面的代码:

if (Page.IsValid)
{
    //  Logic Code here...
}

或者

Jquery让开发人员的生活更轻松:

   if ($('.chkd').is(':checked')){
        alert("Heloo Welcome..");
    } 
   else {
          alert("Please select the checkbox.");
        }

演示 JS 小提琴

注意:chkd是您的复选框类名称

于 2013-07-04T10:02:37.650 回答
0

让你的 gridview id 是 gv_test

function checkChecked() {
    var count = 0;
    $("#gv_test").find(":checkbox").each(function (i) {
        if ($(this).is(":checked")) {
            count++;
        }
    });
    if (count == 0) {
        alert('your error message');
    }
}

希望这会奏效。谢谢你。

于 2013-07-04T10:17:44.453 回答