Индекс выбранной кнопки не работает - PullRequest
0 голосов
/ 11 июня 2018

Итак, у меня есть веб-страница ASP.NET sipme, которая печатает информацию о поле своего пола, динамически сложенную в списке переключателей:

protected void Page_Load(object sender, EventArgs e)
{
    String[] genders = new String[2];
    genders[0] = "Male";
    genders[1] = "Female";
    RadioButtonList1.DataSource = genders;
    RadioButtonList1.DataBind();
    RadioButtonList1.Items.Add(new ListItem("Neutral", "Zero"));
}

protected void Button1_Click(object sender, EventArgs e)
{
    lblName.Text = txtName.Text;
    lblSurname.Text = txtSurname.Text;
    lblEmail.Text = txtMail.Text;
    Panel1.Visible = true;
    if (RadioButtonList1.SelectedIndex==0) lblGender.Text = "Male";
    else lblGender.Text = "Female";
}

Однако, когда я запускаю сайт, независимо от того, что я выбираю его всегдапишет женский, это как RadioButtonList1.SelectedIndex == 0 не работает.

Есть идеи?

1 Ответ

0 голосов
/ 11 июня 2018

Bind radiobuttonlist в page_Load с условием !IsPostBack или ваш radiobuttonlist будет связываться каждый раз, когда вы публикуете свою страницу.Таким образом, ваш radiobuttonlist сбрасывается на индекс -1, когда вы нажимаете button_click.

 protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack)
        {
            String[] genders = new String[2];
            genders[0] = "Male";
            genders[1] = "Female";
            RadioButtonList1.DataSource = genders;
            RadioButtonList1.DataBind();
            RadioButtonList1.Items.Add(new ListItem("Neutral", "Zero"));
        }
    }
...