开发者

ListView ItemDataBound on all pages

开发者 https://www.devze.com 2023-02-11 09:03 出处:网络
The ItemDataBound event of the ASP.NET ListView seems to only deal with the visible page as determined by the DataPager.

The ItemDataBound event of the ASP.NET ListView seems to only deal with the visible page as determined by the DataPager.

How would I be able to utilize data binding on all pages worth of the ListView?

This is regarding using ItemDataBound to check checkboxes...

protected void lvCFR_ItemDataBound(object sender, ListViewItemEventArgs e)
    {
        ListView lv = (ListView)sender;
        ListViewDataItem lvi = (Lis开发者_Python百科tViewDataItem)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;
                    }
            }
        }
    }


The ItemDataBound is only fired for controls that are actually rendered. All of the other pages aren't even being rendered. You would need to set some value in the underlying dataset, or use a temp table to bind to if the checkbox is not tied to the underlying data source.

0

精彩评论

暂无评论...
验证码 换一张
取 消