ListView ItemDataBound на всех страницах - PullRequest
0 голосов
/ 18 февраля 2011

Событие ItemDataBound в ASP.NET ListView, похоже, имеет дело только с видимой страницей, определенной DataPager.

Как бы я мог использовать привязку данных на всех страницах ListView?

Это касается использования ItemDataBound для проверки флажков ...

protected void lvCFR_ItemDataBound(object sender, ListViewItemEventArgs e)
    {
        ListView lv = (ListView)sender;
        ListViewDataItem lvi = (ListViewDataItem)e.Item;
        if (lvi.ItemType == ListViewItemType.DataItem)
        {
            CheckBox cb = (CheckBox)lvi.FindControl("cb1");
            DropDownList ddl = (DropDownList)lvi.FindControl("ddl1");
            if (ddl != null)
                ddl.Enabled = false;

            if (cb != null && ddl != null)
            {
                int ID = Convert.ToInt32(lv.DataKeys[lvi.DisplayIndex].Value);
                foreach (KeyValuePair<int, string> kv in CFRIDs)
                    if (kv.Key == ID)
                    {
                        cb.Checked = true;
                        ddl.Enabled = true;
                        ddl.SelectedValue = kv.Value;
                        break;
                    }
            }
        }
    }

1 Ответ

0 голосов
/ 18 февраля 2011

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

...