0

ASP.NET ListView の ItemDataBound イベントは、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;
                    }
            }
        }
    }
4

1 に答える 1

0

ItemDataBound は、実際にレンダリングされるコントロールに対してのみ発生します。他のすべてのページはレンダリングされていません。基になるデータセットに値を設定するか、チェックボックスが基になるデータ ソースに関連付けられていない場合は一時テーブルを使用してバインドする必要があります。

于 2011-02-18T01:21:47.507 に答える