猜一猜 Radio的預設值是否一樣呢
-----------------------------------------------Q1------------------------------------------------
if (!IsPostBack)
{
ListItem[] lis = new ListItem[5];
lis[0] = new ListItem("1", "1");
lis[1] = new ListItem("2", "2");
lis[2] = new ListItem("3", "3");
lis[3] = new ListItem("4", "4");
lis[4] = new ListItem("5", "5");
for (int i = 1; i <= 5; i++)
{
RadioButtonList rbt = (RadioButtonList)p_test.FindControl("rbt_" + i);
rbt.Items.AddRange(lis);
rbt.SelectedValue = (i).ToString();
}
}
-----------------------------------------------Q2------------------------------------------------
if (!IsPostBack)
{
for (int i = 1; i <= 5; i++)
{
ListItem[] lis = new ListItem[5];
lis[0] = new ListItem("1", "1");
lis[1] = new ListItem("2", "2");
lis[2] = new ListItem("3", "3");
lis[3] = new ListItem("4", "4");
lis[4] = new ListItem("5", "5");
RadioButtonList rbt = (RadioButtonList)p_test.FindControl("rbt_" + i);
rbt.Items.AddRange(lis);
rbt.SelectedValue = (i).ToString();
}
}
------------------------------------A1------------------------------------------
結果不同o 為什麼呢?
因為 ListItem[] 是要重新宣告的
不然 所有的 RadioButtonList.SelectedValue
只會抓 最後一個的預設值 做默認。
顯示的 結果就是A1
反之 有重新宣告 ListItem[]
預設值就會正確。
大家可以試試看o