2012-10-24 180 views
0

在我的頁面中,我有一個CheckBoxList控件,並且我希望所有複選框默認選中。我怎樣才能做到這一點?我嘗試了幾種方法,但它沒有做到這一點。這裏是我的代碼背後:如何設置默認選中的複選框列表項

protected void chkAll_CheckedChanged(object sender, EventArgs e) 
    { 

     foreach(GridViewRow gr in GridView1.Rows) 
     { 

      CheckBox cb = (CheckBox)gr.FindControl("chkItem"); 
      cb.Checked = true; 
      if(((CheckBox)sender).Checked) 
      cb.Checked = true; 
       else 
      cb.Checked = false; 
     } 

    } 

,這裏是我的ASPX代碼:

<asp:TemplateField HeaderText="Check All"> 
        <HeaderTemplate> 
         <asp:CheckBox ID="chkAll" runat="server" AutoPostBack="True" OnCheckedChanged="chkAll_CheckedChanged" /> 
        </HeaderTemplate> 
        <ItemTemplate> 
         <asp:CheckBox ID="chkItem" runat="server" /> 
        </ItemTemplate> 
       </asp:TemplateField> 
+0

三種不同版本的ASP.NET - 哪一個呢? – IrishChieftain

+0

對不起,這是ASP.Net – moe

+0

然後你應該刪除多餘的標籤。 – IrishChieftain

回答

1

使用下面的ASPX:

<asp:GridView runat="server" ID="m_gridView" AutoGenerateColumns="False"> 
       <Columns> 
        <asp:TemplateField HeaderText="Check All"> 
         <HeaderTemplate> 
          <asp:CheckBox ID="chkAll" runat="server" AutoPostBack="True" OnCheckedChanged="chkAll_CheckedChanged" Checked="True" /> 
         </HeaderTemplate> 
         <ItemTemplate> 
          <asp:CheckBox ID="chkItem" runat="server" Checked="True" /> 
         </ItemTemplate> 
        </asp:TemplateField> 
       </Columns> 
      </asp:GridView> 

應該都和各個複選框選中檢查默認。

在你後面的代碼執行以下操作:

protected void chkAll_CheckedChanged(object sender, EventArgs e) 
    { 
     CheckBox l_cbAll = (CheckBox)m_gridView.HeaderRow.FindControl("chkAll"); 
     foreach (GridViewRow l_row in m_gridView.Rows) 
     { 
       CheckBox l_cb = (CheckBox)l_row.FindControl("chkItem"); 
       l_cb.Checked = l_cbAll.Checked; 
     } 
    } 
+0

非常感謝你的幫助。效果很好 – moe