2010-09-19 68 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