Gridview表头中添加checkbox,可以全选列中的checkbox,同时对应的该列中要有checkbox和textbox,我我我我要崩溃了菜鸟啊我是,现在是现学现买,大家帮帮我,谢谢,百分送上!

解决方案 »

  1.   

    这个问题虽说不太难,但说起来可就太多了,呵,你查下Gridview编辑模版列,就是将这一列设置成模版列就行了,里面想放什么都行,其实用到的也就是这个,希望对你有帮助。
      

  2.   

    你参考楼上的说法,然后最好在前段用JavaScript实现全选和反选,用getElementsByName("checkBoxName")来获取checkbox对象数组,然后循环设置checkbox.checked=true或false就ok了,都是这么做的!!思路有了,剩下的要自己开发,多写代码才能提高水平!!
      

  3.   

    <div id="gridview" style="cursor:pointer;">
        <asp:gridview ID="Gridview1" runat="server" Width="50%" onrowdatabound="Gridview1_RowDataBound">
                <RowStyle BackColor="White" />
                <AlternatingRowStyle BackColor="LightYellow" />
                <Columns>
                <asp:TemplateField>
                <HeaderTemplate>
                <input type="checkbox" id="checkAll" onclick="selectAll();" />
                </HeaderTemplate>
                <ItemTemplate>
                <asp:CheckBox runat="server" ID="check" />
                </ItemTemplate>
                </asp:TemplateField>
                </Columns>
                <HeaderStyle BackColor="LightBlue" />
        </asp:gridview>
    </div>
      

  4.   

     function selectAll()
        {
            var chk = document.getElementById("checkAll");
            var div = document.getElementById("gridview");
            var chks = div.getElementsByTagName("input");
            for(var i=0;i<chks.length;i++)
            {                if(chks[i].type=="checkbox")
                    {
    chks[i].checked=chk.checked
                    }
            }
         
        }
      

  5.   

    <asp:TemplateColumn HeaderText="&lt;input type=checkbox name='selectall' onClick='SelectAll(document.Form1)'&gt;全选">
    <ItemTemplate>
    <asp:CheckBox id="CheckBox1" runat="server"></asp:CheckBox>
    </ItemTemplate>
    </asp:TemplateColumn>
    function SelectAll(frm)
    {
      for (var i=0;i<frm.elements.length;i++)
      frm.elements[i].checked = frm.selectall.checked;
     }
       
    function CheckSelect(frm)
    {
    var col=frm.elements;
    var obj=frm.selectall;
    var intEls=0,intChks=0;
    for(var i=0;i<col.length;i++)
    {
    if(col[i].type=="checkbox"&&col[i].name!="selectall")
    {
    intEls++;
    if(col[i].checked)
    intChks++;
    }
    }
    obj.checked=(intEls==intChks);

    http://topic.csdn.net/u/20100121/16/31906e11-a0bb-4f19-ba80-f8b820236af8.html
      

  6.   


    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
         <style>
    * {FONT-SIZE:12PX}
    #Status {text-align:left}
    </style>    <script language="JAVASCRIPT">
            var tgs; 
             var tmp_background_val; 
             function tog(n,flags)
             { 
                //傳過來本次點擊前的的背景顏色 
                if (tgs){ 
                 tgs.style.background= tmp_background_val ; 
                } 
               //考慮到連續點同一個對象的情況,就不要改變保留的顏色 
               n.style.background= '#99ccff' ; 
                tmp_background_val=flags;
                tgs=n; 
             }    
             function AddRemoveValues(oChk) 
             {
               //在处理这个地方需要注意的是:你保存的值应该具有唯一性,这样才能不会替换错误的项。
               if(oChk.checked)  
                   SelectMultiPage.HdnSelectedValues.value += "," + oChk.value; 
               else
                   SelectMultiPage.HdnSelectedValues.value = SelectMultiPage.HdnSelectedValues.value.replace("," + oChk.value,""); 
              }
       </script></head>
    <body>
        <form id="SelectMultiPage" name="SelectMultiPage" runat="server">
        <div>
            <asp:GridView ID="GridView1" HorizontalAlign="Center" AutoGenerateColumns="False"
                Width="600px" AllowPaging="True" runat="server" OnRowDataBound="DataGrid1_RowDataBound"
                OnPageIndexChanging="DataGrid1_PageIndexChanging">
             <AlternatingRowStyle BorderColor="#EEEEEE" />
                <HeaderStyle BackColor="#AAAADD" Font-Bold="True" HorizontalAlign="Center" />
               <Columns>
                    <asp:TemplateField HeaderText="选择">
                        <ItemTemplate>
                            <input type="checkbox" runat="server" id="chkSelect" onclick="AddRemoveValues(this)"
                                value='<%#Eval("id")%>' />
                        </ItemTemplate>
                   </asp:TemplateField>
                   <asp:TemplateField HeaderText="ID">
                        <ItemTemplate>
                            <asp:Literal Text='<%# Eval("id") %>' runat="server" ID="TitleShow" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="页面标题">
                        <ItemTemplate>
                            <asp:Literal ID="Literal1" Text='<%# Eval("title") %>' runat="server" />
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>        </asp:GridView>
        </div>
        <div align="center">
                <asp:Button ID="Button1" runat="server" Text="得到所选的值" OnClick="Button1_Click1"></asp:Button>
            <br />
            <br />
               <div id="Status" align="center" style="text-align: center">
                    <asp:Label ID="Label1" runat="server"></asp:Label>
                </div>
                <input id="HdnSelectedValues" type="hidden" name="HdnSelectedValues" runat="server">
           </div>    </form>
    </body>
    </html>
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;
    public partial class _Default : System.Web.UI.Page 
    {
        public SqlConnection conn;
        public SqlCommand comm;
        public SqlDataAdapter objadapter;
        protected void Page_Load(object sender, EventArgs e)
        {
             if(!Page.IsPostBack)
             {
             BindData();
             }
        }
        public void connection()
        {
            string str = "server=.;uid=sa;pwd=1;database=fsdfeer";
            conn = new SqlConnection(str);
            conn.Open();
        }
        void BindData()
        {
            connection();
         SqlDataAdapter da = new SqlDataAdapter("Select ID,class,classbig,title,contents,laiyuang from content", conn);
         DataSet ds = new DataSet();
         da.Fill(ds);
         GridView1.DataSource = ds;
         GridView1.DataBind();
        }    protected void DataGrid1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
             if (e.Row.RowType == DataControlRowType.DataRow)
            {
                e.Row.Attributes.Add("onclick","tog(this,'AliceBlue')");
                if (HdnSelectedValues.Value.IndexOf(((Literal)e.Row.Cells[1].FindControl("TitleShow")).Text) >= 0)
                {
                   HtmlInputCheckBox ChkSelected = (HtmlInputCheckBox)(e.Row.Cells[0].FindControl("ChkSelect"));
                    ChkSelected.Checked = true;
               }
            }    }
        protected void DataGrid1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView1.PageIndex = e.NewPageIndex;
            BindData();    }
        protected void Button1_Click1(object sender, EventArgs e)
        {
            Label1.Text = HdnSelectedValues.Value.Replace(",", "<li>");    }
    }
      

  7.   


    <asp:GridView ID="GridView1" runat="server" AllowPaging="true" PageSize="5" AllowSorting="True"
                                AutoGenerateColumns="False" HeaderStyle-VerticalAlign="Middle" CellPadding="3"
                                Font-Size="9pt" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px"
                                 Width="100%" OnRowDataBound="GridView1_RowDataBound">
                                <Columns>
                                    <asp:BoundField DataField="CID" HeaderText="用户ID" Visible="false" />
                                    <asp:TemplateField HeaderText="&lt;input type='checkbox' id='chk' name='chk' onclick='checkJs(this.checked);'  /&gt;全选"
                                        >
                                        <ItemTemplate>
                                            <input type="checkbox" id="checkboxname" name="checkboxname" value='<%# DataBinder.Eval(Container.DataItem, "CID")%>'
                                                onclick='SingleCheckJs();' />
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="单选">
                                        <ItemTemplate>
                                            <input type="radio" id="RadioName" name="RadioName" value='<%# Eval("CID")%>' />
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="编号">
                                        <ItemTemplate>
                                            <%# (Container.DataItemIndex+1).ToString()%>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:BoundField DataField="Name" HeaderText="用户姓名" />
                                    <asp:BoundField DataField="Sex" HeaderText="性别" />
                                    <asp:BoundField DataField="Address" HeaderText="家庭住址" />
                                    <asp:BoundField DataField="Post" HeaderText="邮政编码" />
                                </Columns>
                                <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                                <EditRowStyle BackColor="#999999" />
                                <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                                <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                                <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                                <PagerSettings Visible="False" />
                                <FooterStyle Font-Bold="True" />
                                <HeaderStyle Font-Bold="False" Font-Italic="False" />
                            </asp:GridView>
    // 判断多选是否与选中项(没有选中的返回false)
        function slcNo_click()
        {
            if (document.form1.checkboxname.length)
            {
                for (var i=0;i<document.form1.checkboxname.length;i++)
                {
                    if(document.form1.checkboxname[i].checked)
                    {
                        return true;
                    }
                }
            }
            else
            {
                if(document.form1.checkboxname.checked)
                {
                    return true;
                }
            }
            alert("请选择后再操作!");
            return false;
        }
        
        
        //        
     
        // 多选的全选与取消
        function checkJs(boolvalue)
        {
            if(document.all.checkboxname.length>1)
            {
                for(var i=0;i<document.all.checkboxname.length;i++)
                {
                    document.all.checkboxname[i].checked = boolvalue;            
                }
            }
            else
                document.all.checkboxname.checked = boolvalue;
        }
        //
        
        // 只有全部选中时“全选”选中
        function SingleCheckJs()
        {
            var flag1=false;
            var flag2=false;
            
            if (document.form1.checkboxname.length)
            {
                for (var i=0;i<document.form1.checkboxname.length;i++)
                {
                    if(document.form1.checkboxname[i].checked)
                        flag1 = true;
                    else
                        flag2 = true;
                }
            }
            else
            {
                if(document.form1.checkboxname.checked)
                    flag1 = true;
                else
                    flag2 = true;
            }
            
            if(flag1==true&&flag2==false)
                document.getElementById("chk").checked = true;
            else
                document.getElementById("chk").checked = false;
        }
        //
      

  8.   

    把checkBox的name改一样不就可以点一个全部选中了