gridview  中有两列模板列,里面都有checkboxhedaer上各有一个checkbox,当hedaer上的checkbox选中时,如何使对应的列的checkbox也都选中?

解决方案 »

  1.   

    ***.aspx
      <asp:GridView ID="GridView1" runat="server" 
                                                                  AutoGenerateColumns="False" CssClass="news_bordall" DataKeyNames="ID" 
                                                                   PageSize="20" 
                                                                  Width="100%">
                                                                  <Columns>
                                                                      <asp:TemplateField FooterText="全选" HeaderStyle-CssClass="news_dg_head" 
                                                                          HeaderText="选择">
                                                                          <HeaderTemplate>
                                                                              <asp:CheckBox ID="CheckBox2" runat="server" AutoPostBack="True" 
                                                                                  OnCheckedChanged="CheckAll" Text="全选" />
                                                                                
                                                                          </HeaderTemplate>
                                                                          <ItemTemplate>
                                                                              <asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="True" 
                                                                                  Font-Names="宋体" Font-Size="9pt" />
                                                                          </ItemTemplate>
                                                                          <HeaderStyle CssClass="news_dg_head" />
                                                                      </asp:TemplateField>
                                                                      <asp:TemplateField HeaderStyle-CssClass="news_dg_head" HeaderText="标题">
                                                                          <ItemStyle CssClass="dataGrid_item" HorizontalAlign="left" />
                                                                          <HeaderStyle />
                                                                          <ItemTemplate>
                                                                              <a href='../../Manager/ShowReportInfo.aspx?ID=<%# Server.UrlEncode(Eval("ID").ToString()) %>' 
                                                                                  target="_blank">
                                                                              <img src="../../Manager/images/expand.gif" />
                                                                              <%# Component.GetStr.GetString(Eval("Title").ToString())%></a>
                                                                          </ItemTemplate>
                                                                      </asp:TemplateField>
                                                                      <asp:TemplateField HeaderStyle-CssClass="news_dg_head" HeaderText="作者">
                                                                          <ItemStyle CssClass="dataGrid_item" HorizontalAlign="left" />
                                                                          <HeaderStyle />
                                                                          <ItemTemplate>
                                                                              <%# Eval("Author") %>
                                                                          </ItemTemplate>
                                                                      </asp:TemplateField>
                                                                      <asp:TemplateField HeaderStyle-CssClass="news_dg_head" HeaderText="发布日期">
                                                                          <ItemStyle CssClass="dataGrid_item" HorizontalAlign="left" />
                                                                          <HeaderStyle />
                                                                          <ItemTemplate>
                                                                              <%# Eval("InfoPublDate") %>
                                                                          </ItemTemplate>
                                                                      </asp:TemplateField>
                                                                  </Columns>
                                                                  <PagerStyle ForeColor="#666666" Font-Overline="true"   />
                                                              
                                                              </asp:GridView>
    ***.aspx.cs
     protected void CheckAll(object sender, EventArgs e)
            {
                CheckBox cb = (CheckBox)sender;            if (cb.Text == "全选")
                {
                    foreach (GridViewRow gv in this.GridView1.Rows)
                    {
                        CheckBox cd = (CheckBox)gv.FindControl("CheckBox1");
                        cd.Checked = cb.Checked;
                        cb.Text = "取消";
                    }
                }
                else
                {
                    cb.Text = "取消";
                    foreach (GridViewRow gv in this.GridView1.Rows)
                    {
                        CheckBox cd = (CheckBox)gv.FindControl("CheckBox1");
                        cd.Checked = cb.Checked;
                        cb.Text = "全选";
                    }            }
            }
      

  2.   

    当header的checkbox选择时,循环找到gridview item的checkbox,设置checked=true
      

  3.   

    protected void CheckAll(object sender, EventArgs e)
            {
                CheckBox cb = (CheckBox)sender;            if (cb.Text == "全选")
                {
                    foreach (GridViewRow gv in this.GridView1.Rows)
                    {
                        CheckBox cd = (CheckBox)gv.FindControl("CheckBox1");
                        cd.Checked = cb.Checked;
                        cb.Text = "取消";
                    }
                }
                else
                {
                    cb.Text = "取消";
                    foreach (GridViewRow gv in this.GridView1.Rows)
                    {
                        CheckBox cd = (CheckBox)gv.FindControl("CheckBox1");
                        cd.Checked = cb.Checked;
                        cb.Text = "全选";
                    }            }
            }