網頁

2010年9月1日 星期三

ListItem的SelectedIndex(ex:DropDownList顯示選取的Item)

在一些使用ListItemCollectin的控制項時常會遇到要將PostBack前選取的項目,在PostBack後將選取的值給標示出來
簡單說就是…
<select id="test1" name="test1">
<option value="1111" selected="selected">1111</option>
<option value="2222">2222</option>
</select>

在ASP.NET中如果DropDownList的DataSource是Bind一個DataTable的話,最常見到的方式是
DropDownList1.SelectedIndex = -1;
for(int i=0; i<DS.Tables[0].Rows.Count; i++)
{
if(DS.Table[0].["Value"].ToString() == DropDownList1.Item[i].Value)
{
DropDownList1.Item[i].Selected = true;
}
else
{
DropDownList1.Item[i].Selected = false;
}
}
千萬不要這樣做,這樣是會多做許多無謂的迴圈判斷,會拖垮效能的

比較好的方式,指需要一行就可以解決
DropDownList1.SelectedIndex = DropDownList1.Item.IndexOf(DropDownList1.Items.FindByValue("xxxx"));
雖然很多人應該都知道這樣的方法,但還是記下來,以免忘記。






沒有留言:

張貼留言