动态单选按钮在下拉列表中失去其值,所选索引更改- c#



我有一个下拉列表,其中包含从1到10的值。默认值是5。所以我必须在页面加载时创建5个动态radiobuttonlist。然后在选择这个radiobuttonlist上的一些值之后,我必须将dropwonlist上的值更改为任何其他数字(例如8)。然后系统应该将先前选择的radiobuttonlists (5nos)的值保存到数据库中,然后必须创建新的radiobuttonlist (8nos)集。但当我像下面这样尝试时,在Ispostback上,old radiobuttonlist的值会变为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;
}
}

我相信,问题是,你正在使用一个for循环单选按钮列表。它会返回所有单选按钮,而不仅仅是选中的那个。试试这个:

SaveCurrentValues()
{
rb_list = (RadioButtonList)Page.FindControl("RadioButtonList");
string ai= rb_list.SelectedValue;
//insert query
}

最新更新