本来要实现一个全选的功能,再通过Request.Form在cs文件里获取。
现在遇到的问题是:我单击全选,所有的checkbox都选中了,可是再点击提交,后台却获取不到。我手动选择这些checkbox是可以在服务器获取到值的:
这是我选择前三项获取的结果
这是我什么也不选获得的结果我全选后提交什么没弹出,连设置的断点也进不去问问大家是什么情况:我的aspx代码:<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        function selectAll(f,flag){
            if (flag == true) {
                for (var i = 0; i < f.elements.length; i++) {
                    if (f.elements[i].name = "default") {
                        f.elements[i].checked = true;
                    }
                }
            } else {
                for (var i = 0; i < f.elements.length; i++) {
                    if (f.elements[i].name = "default") {
                        f.elements[i].checked = false;
                    }
                }
            }                                                                 
        }    
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
       全选 <input id="select" name="select" type="checkbox" value="-1" onclick="selectAll(this.form,this.checked);"/>
         <hr />
            <input id="default" name="default" value="1" type="checkbox" />
            <input id="Checkbox1" name="default" value="2" type="checkbox" />
            <input id="Checkbox4" name="default" value="3" type="checkbox" />
            <input id="Checkbox5" name="default" value="4" type="checkbox" />
            <input id="Checkbox6" name="default" value="5" type="checkbox" />
            <input id="Checkbox3" name="default" value="6" type="checkbox" />
            <input id="Checkbox2" name="default" value="7" type="checkbox" />
    </div>
    <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click"/>
    </form>
</body>
</html>
我的cs文件代码:
    protected void Button1_Click(object sender, EventArgs e)
    {
        if(Request.Form["default"]!=null){
        
            ShowMessage(this,Request.Form["default"]);
        
        }else{
        
            ShowMessage(this,"没有选中");
        
        }
        if (Request.Form["select"] != null)
        {
            ShowMessage(this, Request.Form["select"]);
        }
        else {
            ShowMessage(this, "咋回事");
        }    
    }    private void ShowMessage(System.Web.UI.Page page, string mesg){
        string alerts = @"<script type='text/javascript'>alert('" + mesg + "')</script>";
        Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", alerts);
    
    }

解决方案 »

  1.   

    原因很简单,因为你没有指明form的提交方式,
    你加上这句就可以了,本人测试已通过。
    <form id="form1" method="post" runat="server">
      

  2.   

    我加上了,不行啊,默认的就是post提交的啊
      

  3.   

    1.通过控件ID来获取值
    2.使用CheckBoxList
      

  4.   

    我晕死了,是因为js代码,==写成了=,这样判断成了赋值。表单的所有元素name都被赋值为default,一起被提交。
      

  5.   

            function selectAll(f, flag) {
                if (flag == true) {
                    for (var i = 0; i < f.elements.length; i++) {
                        if (f.elements[i].name == "default") {
                            f.elements[i].checked = true;
                        }
                    }
                } else {
                    for (var i = 0; i < f.elements.length; i++) {
                        if (f.elements[i].name == "default") {
                            f.elements[i].checked = false;
                        }
                    }
                }
            }