Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.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# 选中多个Gridview的验证Gridview复选框_C#_Javascript_Gridview - Fatal编程技术网

C# 选中多个Gridview的验证Gridview复选框

C# 选中多个Gridview的验证Gridview复选框,c#,javascript,gridview,C#,Javascript,Gridview,我想验证在同一页面上选中多个Gridview复选框的Gridview 我尝试了以下方法,但不起作用 <script type="text/javascript"> var TargetBaseControl = null; window.onload = function () { try { //get target base control. TargetBaseControl = document.

我想验证在同一页面上选中多个
Gridview
复选框的
Gridview

我尝试了以下方法,但不起作用

<script type="text/javascript">
    var TargetBaseControl = null;
    window.onload = function () {
        try {
            //get target base control.
            TargetBaseControl = document.getElementById('<%= this.GridView1.ClientID%>', '<%= this.GridView2.ClientID%>');
        }
        catch (err) {
            TargetBaseControl = null;
        }
    }
    function TestCheckBox() {
        if (TargetBaseControl == null) return false;
        //get target child control.
        var TargetChildControl = "chkSelectAdd";
        //get all the control of the type INPUT in the base control.
        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)
                return true;
        alert('Select at least one checkbox!');
        return false;
    }
</script>

var TargetBaseControl=null;
window.onload=函数(){
试一试{
//获得目标基地控制权。
TargetBaseControl=document.getElementById(“”,”);
}
捕捉(错误){
TargetBaseControl=null;
}
}
函数TestCheckBox(){
if(TargetBaseControl==null)返回false;
//获取目标子控件。
var TargetChildControl=“chkSelectAdd”;
//获取基本控件中输入的类型的所有控件。
var Inputs=TargetBaseControl.getElementsByTagName(“输入”);
对于(变量n=0;n=0&&
输入[n]。已选中)
返回true;
警报('至少选择一个复选框!');
返回false;
}

这里我可以看到两个问题
document.getElementById
一次只支持一个元素,因此您的代码将只选中第一个GridView的复选框。此外,元素的ID应该是唯一的,因此您可以在此处对照ID进行检查:

Inputs[n].id.indexOf(TargetChildControl, 0) >= 0 &&
对于第一个复选框,将仅返回true

我建议取消使用
TargetBaseControl
,只需依赖复选框的名称,而不是ID:

var Inputs = document.getElementsByTagName("input");
    for (var n = 0; n < Inputs.length; ++n)
        if (Inputs[n].type == 'checkbox' &&
        Inputs[n].name.indexOf(TargetChildControl, 0) >= 0 &&
        Inputs[n].checked)
            return true;
...
var Inputs=document.getElementsByTagName(“输入”);
对于(变量n=0;n=0&&
输入[n]。已选中)
返回true;
...