关于DataGrid Web控件的热门问题__连载之七

预选中 Drop-Down List 中的一项

多数情况下,你可能要设定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));

}

}

Published At
Categories with Web编程
Tagged with
comments powered by Disqus