<script language="javascript" type="text/javascript">
function CheckAllGridCheckBox(formName,obj, name)
{
    var elements = document.forms[formName].elements;
    for (var i=0; i<elements.length; i++)
    {
        if (elements[i].type == 'checkbox')
        {
            if (elements[i].name.indexOf(name) > -1)
            {
                elements[i].checked = obj.checked;
            }
        }
    }
}
</script>上边是CheckBox全选JS是在数据控件中的 <input type="checkbox" name="checkone" id="ckOne" runat="server"/>            
留言人:<a id="a1" href='find.aspx?Name=<%# DataBinder.Eval(Container.DataItem, "Name")%>'
style="font-size: small;"><%# DataBinder.Eval(Container.DataItem, "Name")%>这个是Repeater部分代码<asp:CheckBox ID="CheckBox1" runat="server" Text="全选" Font-Size="Small" onclick="CheckAllGridCheckBox('form1',this,'ckOne')" />高手帮我解决下如何判断Repeater中的单个CheckBox选中后的事件(也就是说就选中Repeater中两个CheckBox如何在后台判断选中的这两个CheckBox)

解决方案 »

  1.   

    大侠们帮下我!!如何取出来CheckBox中的值
      

  2.   

    asp.net夜话之八:数据绑定控件
    在asp.net中所有的数据库绑定控件都是从BaseDataBoundControl这个抽象类派生的,这个抽象类定义了几个重要属性和一个重要方法:DataSource属性:指定数据绑定控件的数据来源,显示的时候程序将会从这个数据源中获取数据并显示。DataSourceID属性:指定数据绑定控件的数据源控件的ID, 显示的时候程序将会根据这个ID找到相应的数据源控件,并利用这个数据源控件中指定方法获取数据并显示。DataBind()方法:当指定了数据绑定控件的DataSource属性或者DataSourceID属性之后,再调用DataBind()方法才会显示绑定的数据。并且在使用数据源时,会首先尝试使用DataSourceID属性标识的数据源,如果没有设置DataSourceID时才会用到DataSource属性标识的数据源。也就是说DataSource和DataSourceID两个属性不能同时使用。数据绑定控件的DataSource控件属性必须是一个可以枚举的数据源,如实现了ICollection、IEnumerable或IListSource接口的类的实例。里面就提到了复选问题。
      

  3.   

    GridView中实现反选和全选功能在显示数据的时候经常有一些批量操作的功能,比如数据的批量删除等,我们可以利用javascript脚本来辅助实现这一功能,不过如果用asp.net中的CheckBox控件来实现这个功能的话,比较麻烦,因为在GridView这样的控件将asp.net中的Web服务器控件转换成普通HTML控件的时候不能直接按照控件的ID来分配,存在着在一个GridView中有多个CheckBox控件,为了防止命名冲突,asp.net 为页上的各个服务器控件自动生成一个唯一的 ClientID 值。ClientID 值是通过连接控件的 ID 值和它的父控件的 UniqueID 值生成的。如果未指定控件的 ID 值,则使用自动生成的值。如果我们在GridView中添加一个CheckBox控件,我们在生成的HTML控件中会发现它生成的HTML代码类似于下面的格式:
    <input id="gvUserList_ctl02_ctl01" type="checkbox" name="gvUserList$ctl02$ctl01" checked="checked" disabled="disabled" />所以我们在用javascript操作GridView这样的控件中的asp.net Web服务器控件一定要注意这个情况,可以通过asp.net Web服务器控件的ClientID属性来操作。这时候我们可以使用普通HTML控件来达到我们想要的功能,asp.net对于普通HTML控件是不会更改它的id和name属性的。实现了单选和复选功能之后,我们如何获取选中的值呢?因为是普通HTML控件,自然不能像asp.net Web服务器控件那样利用某个属性来判断,不过我们可以利用一个asp.net Button服务器控件来提交表单,然后通过Request[“控件的name”]来获取选中的值(没有印象的朋友赶紧看第三页的介绍),得到值是形如“15,16,17”这样的字符串,这时我们可以利用SQL语句来进行批量操作,我们的SQL语句可以这么写:
    String sql=”delete from Users where UserId in(“+Request["CheckboxGroup"]+”)”;
    这样就不必进行分割字符串的操作,只连接数据库操作就删除了选中的数据,大大提高了效率。
      

  4.   

    在你的服务器端后台用 Page.Request.QueryString["checkone"] 看看;其实你可以不用服务器控件,直接在repeater中将你的绑定 <asp:CheckBox ID="CheckBox1" runat="server" Text="全选" Font-Size="Small" onclick="CheckAllGridCheckBox('form1',this,'ckOne')" /> 修改为 <input type="radio" name="checkone" onclick="CheckAllGridCheckBox('form1',this,'ckOne')" />这样当你提交的时候,就可以在服务器端获取到你选中的值了。
      

  5.   

    我明白你的意思了,我貼一段給你。<script  language="javascript" type="text/javascript">   
    var theForm = document.forms['aspnetForm'];
      function   CheckAllASN()   
      {             
         for (var   k=0;k<document.aspnetForm.elements.length;k++)   
         {   
            var   e   =   document.aspnetForm.elements[k];   
             if (e.id!= 'ctl00_ContentPlaceHolder1_GridView1_ctl01_Checkallbox1')   
          {
              e.checked   =   document.aspnetForm.ctl00_ContentPlaceHolder1_GridView1_ctl01_Checkallbox1.checked;  
         }
             
      }   
      }
     </script> 
    <Columns>
            <asp:TemplateField HeaderText="Check">
                            <ItemTemplate>
                                <asp:CheckBox ID="CheckBox1" runat="server" />
                            </ItemTemplate>
                            <HeaderTemplate>
                                <input id="Checkallbox1" runat="server" visible="true" type="checkbox" onclick="CheckAllASN()"/>
                            </HeaderTemplate>
                            <HeaderStyle Width="1%" Wrap="false" />
                            <ItemStyle HorizontalAlign="Center" />
                        </asp:TemplateField>      
      

  6.   

    if (Request.Form["CheckBox1"] != null)
    {
    //获取选中复选框数组列表 
    string[] ids = Request.Form["CheckBox1"].Split(','); //遍历数组列表获得各个选中复选框ID号
    foreach (string id in ids)
    {
    if (id != string.Empty)
    {
    Delete(id);
    }
    }
    } //重新绑定数据
    this.Bind();
    不知道上面的是不是你想要的效果.
      

  7.   

    <script language="javascript" type="text/javascript">
     
            //设置 CheckBox 的选择状态js反选 全选 多选框 兼容ie和firefox版本
            function SettingChecked(isCked)
            {
                var ck=document.getElementsByTagName("input");//意思是找到页面上所有 <input > 节点
                 for(var i=0 ;i<ck.length;i++)
                {
                    if(ck[i].type=="checkbox")
                        {
                        ck[i].checked=(isCked=="selectAll")? true :(!ck[i].checked);
                        }
                }
            }
            //判断选中提示。
            function DelAllItem(id,evt)
            {
               if(CkeckedTolNum(id)==0)
                {
                    alert('<%=FSSoft.Web.UI.Language.Msg("00005") %>');
                    return false;}
                  else
                   {return window.confirm('<%=FSSoft.Web.UI.Language.Msg("00008") %>');}
                }
            function CkeckedTolNum(cid)
            {
               var num =0;  
               var cks =document.getElementsByTagName("input");
                for(var i=0;i<cks.length;i++)
               { 
                  //cks[i].id.indexOf(cid) = 0 时,说明 是以 cid 开头的 ID
                  if(cks[i].type=="checkbox"  && cks[i].checked && cks[i].id.indexOf(cid)>=0)
                  {num ++;}
                }
               return num;
             }
            function NoCheckSelect()//不选
            {
                var cks =document.getElementsByTagName("input");
                for(var i = 0; i < cks.length ; i++) 
                {
                   if(cks[i].type.toLowerCase() =="checkbox"  && cks[i].checked)
                   {
                    //如果选择框选中则清空
                    if(cks[i].checked.toString() == "true"){cks[i].checked = false;}
                   }
                }
           }
        </script> <asp:Repeater ID="rpMyWriteLog"  runat="server"  onitemdatabound="rpMyWriteLog_ItemDataBound"  > 
       <ItemTemplate>
       <asp:CheckBox ID="single_Chk"  name="selectAll" runat="server" />
       <asp:HiddenField  ID="logid" Value='<%#Eval("logid")%>' runat="server"/>
      </ItemTemplate>
     //删除选中的数据。可全删除。全选根据ID删除
        protected void delWriteLog_Click(object sender, ImageClickEventArgs e)
        {
           sqlt.SetSQLBeginTrans();
            try
            {
                for (int i = 0; i < rpMyWriteLog.Items.Count; i++)
                {
                    CheckBox CB = (CheckBox)rpMyWriteLog.Items[i].FindControl("single_Chk");
                    if (CB.Checked==true)
                    {
                        string delID = ((HiddenField)rpMyWriteLog.Items[i].FindControl("logid")).Value;
                        cookies = Request.Cookies["UserCookies"];
                        if (cookies != null)
                        {
                            int uid = int.Parse(cookies["User_Uid"].ToString());//
                            sqlt.Operate("update dbo.space_MyReleased set delstate=1 where uid='"+uid+"' and logid=" + delID);
                        }
                     }
                } sqlt.SetSQLCommitTrans(); sqlt.ConClose();
            }
            catch
            {
                sqlt.SetSQLRollBack(); sqlt.ConClose(); base.MessageBox("00006", null);
            }
            this.PageFen();
        }够详细了吧
      

  8.   

    <span id="select1" class="STYLE8" onclick="SettingChecked('selectAll');this.style['color']='#33AA3F'">全部</span> -  
    <span  id="select2"  class="STYLE8" onclick="SettingChecked();this.style['color']='#33AA3F'">&nbsp;反选 &nbsp;</span>-  
    <span  id="select3"  class="STYLE8" onclick="NoCheckSelect();this.style['color']='#33AA3F'">&nbsp;不选</span>
      

  9.   

    楼主注意了.checkbox有个ToolTip属性。
    如果这样赋值:
     <asp:CheckBox ID="ChkBox" ToolTip='<%#Eval("id")%>' runat="server" />
    页面直接取就好了。  foreach (RepeaterItem item in Repeater1.Items)
                        {
                            CheckBox ChkBox = (CheckBox)item.FindControl("ChkBox");
                            if (ChkBox.Checked)
                            {
                                string id = ChkBox.ToolTip;                            sql += "  delete from NT_Company_RecommendKeys where id=" + id;
                                TF = true;
                            }
                        }