0

我有一个下拉列表,其中包含从 1 到 10 的值。默认情况下,它的值为 5。所以我必须在页面加载时创建 5 个动态单选按钮列表。然后在这个单选按钮列表上选择一些值后,我必须将 dropdwonlist 上的值更改为任何其他数字(比如 8)。然后系统应将先前选择的单选按钮列表 (5nos) 的值保存到数据库中,然后必须创建新的单选按钮列表 (8nos) 集。但是当我像下面这样尝试时,在 Ispostback 上,旧单选按钮列表的值变为 null。请给出解决方案。

   public static RadioButtonList rb_list ;
   public static int number_of_rb_list ;

if (!IsPostBack)
  {
  number_of_rb_list= Convert.ToInt32(ddl_list.SelectedItem.Value.ToString());
  CreateRadioButtonList(); //have to create 6 radiobuttonlist
  }

  if (IsPostBack)//when changing the value of dropdownlist, 
  {
  SaveCurrentValues();//have to save the current radiobuttonlist selected value to database
  number_of_rb_list= Convert.ToInt32(ddl_list.SelectedItem.Value.ToString());//new set of radiobuttonlist
  CreateRadioButtonList(number_of_rb_list= ); //have to create new set of radiobuttonlist with empty selected value
  }

SaveCurrentValues()
{
for(int i=1;i<=number_of_rb_list;i++)
{
  rb_list = (RadioButtonList)Page.FindControl("RadioButtonList" + i); //it is getting as null here
  string ai= rb_list.SelectedValue;
  //insert query
}
}

CreateRadioButtonList()
{
for(int i=1;i<=number_of_rb_list;i++)
{
   rb_list = new RadioButtonList();
                rb_list.ID = "RadioButtonList" +number_of_rb_list;
                rb_list.RepeatColumns = 5;
                rb_list.RepeatDirection = RepeatDirection.Horizontal;
                rb_list.RepeatLayout = RepeatLayout.Table;
                rb_list.Items.Add(new ListItem("", "0"));
                rb_list.Items.Add(new ListItem("", "1"));
                rb_list.Items.Add(new ListItem("", "2"));
                rb_list.Items.Add(new ListItem("", "3"));
                rb_list.Items.Add(new ListItem("", "4"));
                rb_list.CssClass = "style_radio";
                rb_list.Width = 500;
}
}
4

0 回答 0