Поиск состояния элементов управления в ListView - PullRequest
0 голосов
/ 27 августа 2009

У меня есть представление списка, привязанное к источнику данных, в каждой строке есть элемент управления флажком, который я хочу получить, когда я нажимаю кнопку, я хочу проверить все флажки в списке и проверить, есть ли они были отмечены.

Сначала я попытался добавить событие onclick к кнопке, обвести вокруг listview.items и проверить состояние «флажка» элемента управления checkbox, однако всегда возвращалось значение «ложь», даже если они отметили элемент. .

Единственный способ заставить его работать, это если я зациклился вокруг всех элементов списка в событии onItemDataBound, однако это не кажется самым эффективным способом сделать это, так как он вызовет onItemDataaBound для каждого элемента в списке просмотра, ( таким образом, каждый раз вызывается foreach в listview.items)

Затем я попытался сделать то же самое для события OnDateBound, поскольку это вызывается только один раз, но я столкнулся с той же проблемой, он постоянно видит поле «флажки» флажков как ложное, мне было интересно, может ли кто-нибудь указать меня в правильном направлении правильного способа сделать это.

спасибо Радж.

Ответы [ 2 ]

0 голосов
/ 25 ноября 2009

Должна быть вызвана функция DataBind() на вашем listview до вашего события Button_Clic k; скорее всего, в событии page_load. Если вы связали свои данные в page_load событие; сделать это внутри блока if (!Page.IsPostBack);

Надеюсь, это поможет.

0 голосов
/ 27 августа 2009

Я использую gridview, который имеет те же функции. Я помещаю кнопку за пределы сетки с событием onclick.

В коде у меня есть что-то вроде этого:

foreach (GridViewRow gridViewRow in GridAvailableUsers.Rows)
            {
                // only add selected topics.
                CheckBox selCheckBox = (CheckBox)gridViewRow.Cells[3].Controls[1];
                if (selCheckBox.Checked)
                {
// do something
                }
            }

Это зациклит все строки. Если вы не хотите что-то подобное, то вам, возможно, придется воспользоваться решением javascript. Захватите все строки с установленным флажком и обновите скрытое поле с идентификатором строки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...