2011-02-18 72 views
0

ASP.NET ListView的ItemDataBound事件似乎只处理由DataPager确定的可见页面。ListView ItemDataBound在所有页面上

我将如何在所有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; 
        } 
      } 
     } 
    } 

回答

0

的的ItemDataBound仅触发针对实际呈现的控制。所有其他页面甚至没有被渲染。您需要在底层数据集中设置一些值,或者如果复选框未绑定到底层数据源,则使用临时表进行绑定。

相关问题