我有一个下拉列表,其中包含从 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;
}
}