У меня есть страница с radiobuttonlist и текстовой областью. данные отображаются динамически в текстовой области на основе выбора пользователя. я также настроил OnSelectedIndexChanged = "RadioButtonList1_SelectedIndexChanged", чтобы создать URL, который позволит пользователям ссылаться на свою статью (выбор радиокнопок).
все работает, кроме вырезания и вставки созданного URL (т. Е. http://test.com/test.aspx?selected=3) в новый браузер. Код продолжает присваивать radiobuttonlist1.selectedindex -1.
вот что я вижу в режиме отладки
Случай 1 , когда я вырезал и вставил URL в новый браузер http://test.com/test.aspx?selected=1, в конце кода метода page_load RadioButtonList1.SelectedIndex равен = -1. по какой-то причине это неправильно назначает индекс выбора.
Случай 2 , когда я выбираю переключатель на веб-странице, которую я запустил, он пропускает код page_load, потому что обратная связь верна . затем создает URL-адрес в RadioButtonList1_SelectedIndexChanged. затем проходит через метод загрузки на странице и в конце содержит правильное значение RadioButtonList1.SelectedIndex.
Случай 3 , когда я выбираю ссылку на запущенной веб-странице, которая использует указатель на http://test.com/test.aspx?selected=2, обратная передача имеет значение false, поэтому он выполняет цикл через код page_load и успешно удерживает правильное значение RadioButtonList1.SelectedIndex в конце.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
int selected;
if (Request.QueryString["selected"] != null)
{
if (int.TryParse(Request.QueryString["selected"], out selected))
{
RadioButtonList1.SelectedIndex = selected;
RadioButtonList1.DataBind();
}
}
else
{
int firstart = 0;
RadioButtonList1.SelectedIndex = firstart;
}
}
}
protected void SqlDataSource2_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
}
protected void SqlDataSource1_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
try{
e.Command.Parameters["@URL_FK"].Value = Session["URL_PK"];
}
catch (Exception ex)
{
}
}
protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e)
{
string strRedirect;
strRedirect = "test.aspx?selected=" + RadioButtonList1.SelectedIndex;
Response.Redirect(strRedirect);
}
}