2010-09-19 72 views
1

我有一個ListView控件「lstStudents」,我已經添加了ListView中的複選框viewControl.I需要添加一個Select All複選框,導致檢查ListView中的所有複選框我使用下面的代碼,但它不起作用。Listview控件問題

private void chkAll_CheckedChanged(object sender, EventArgs e) 
    { 
     foreach (Control cont in lstStudents.Controls) 
     { 
      if (cont.GetType() == typeof(CheckBox)) 
      { 
       (cont as CheckBox).Checked = true; 
      } 

     } 
    } 

我使用C#Windows窗體......

+0

你在asp.net工作的一個額外的參考驗證? – 2010-09-19 05:58:08

回答

2

您正在與數據項交談而不是控制本身

private void chkAll_CheckedChanged(object sender, EventArgs e) 
    { 
     foreach (ListViewItem item in lstStudents.Items) 
     { 
      item.Checked = chkAll.Checked; 
     } 
    } 
  • Checked屬性始終可以在ListViewItem上訪問,可見或不可見。
  • lstStudents.Items只返回一個ListViewItem

所以沒有必要對這些項目

+0

是的,就是那個。 – 2010-09-19 11:38:42

+0

謝謝!它正在工作 – chamara 2010-09-19 13:50:57

1

試試這個:

private void chkAll_CheckedChanged(object sender, EventArgs e) 
{ 
    foreach (ListViewDataItem item in lstStudents.Items) 
    { 
     CheckBox cbSelect = item.FindControl("cbSelect") as CheckBox; 
     if (cbSelect != null) 
     { 
      cbSelect.Checked = true; 
     } 
    } 
} 

假設你的列表視圖的定義是這樣的:

<asp:listview runat="server"> 
    <itemtemplate> 
     <asp:checkbox id="cbSelect" runat="server" /> 
    </itemtemplate> 
</asp:listview> 
+0

對不起忘了提。我用c#windows窗體...... – chamara 2010-09-19 06:08:44