2021年6月9日 星期三

RadioButtonList的預設值

 猜一猜   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------------------------------------------


------------------------------------A2------------------------------------------


=============================================================

結果不同o 為什麼呢?

因為  ListItem[]  是要重新宣告的

不然 所有的 RadioButtonList.SelectedValue 

 只會抓 最後一個的預設值 做默認。

顯示的 結果就是A1

反之 有重新宣告  ListItem[] 

預設值就會正確。

大家可以試試看o