關於DataGrid Web控件的熱門問題__連載之七

- 中國WEB開發者網絡 (http://www.webasp.net)
-- 技術教程 (http://www.webasp.net/article/)
--- 關於DataGrid Web控件的熱門問題__連載之七 (http://www.webasp.net/article/18/17439.htm)
-- 作者:未知
-- 發佈日期: 2005-04-12
多數情況下,你可能要設定Drop-Down List中的選定項來匹配特定值——通常是顯示模式中的單元格的值。你可以將它的SelectedIndex屬性設定成你想要顯示的值的索引值來實現。
下例在DataGrid Item的ItemDataBound事件句柄中採取了一種可靠的方式來實現它。這樣使用這個事件是正確的,因為它保證了Drop-Down List已經被生成,不管它使用了什麼數據源。
技巧在於要知道綁定到Drop-Down List上的值。典型情況下,這個值已經提供給你,要麼是在當前的item中,要麼是在它的DataItem 屬性中,item返回一個包含當前記錄的DataRowView 對象。一旦有了這個值,可以通過Drop-Down List的FindByText 或者FindByValue 方法來定位當前項,然後使用item的IndexOf屬性來返回索引。
private void DataGrid1_ItemDataBound(object sender,
      System.Web.UI.WebControls.DataGridItemEventArgs e)
{
   if(e.Item.ItemType == ListItemType.EditItem){
      DataRowView drv = (DataRowView) e.Item.DataItem;
     String currentgenre = drv["genre"].ToString();
     DropDownList ddl =
        (DropDownList) e.Item.FindControl("DropDownList1");
     ddl.SelectedIndex =
         ddl.Items.IndexOf(ddl.Items.FindByText(currentgenre));
   }
}

webasp.net