Проблема управления ListView - PullRequest
       4

Проблема управления ListView

1 голос
/ 19 сентября 2010

У меня есть элемент управления Listview "lstStudents", и я добавил флажки внутри List ViewControl. Мне нужно добавить флажок Select All, который приводит к проверке всех флажков внутри 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 Forms ......

Ответы [ 2 ]

2 голосов
/ 19 сентября 2010

Вы обращаетесь к элементу данных вместо самого элемента управления

    private void chkAll_CheckedChanged(object sender, EventArgs e)
    {
        foreach (ListViewItem item in lstStudents.Items)
        {
            item.Checked = chkAll.Checked;
        }
    }
  • свойство Checked всегда доступно для ListViewItem, видимое или нет.
  • lstStudents.Items возвращаеттолько ListViewItem

, поэтому нет необходимости в дополнительной проверке ссылок для этих элементов

1 голос
/ 19 сентября 2010

Попробуйте:

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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...