Сохранение выбранного значения в раскрывающемся списке в ViewState - PullRequest
1 голос
/ 14 декабря 2011

У меня есть раскрывающийся список, который при изменении сохранит новое значение в переменную ViewState, так что после обратной передачи раскрывающийся список получит выбранное значение из ViewState, если оно было установлено ранее.

Когда он пытается сохранить выбранное значение в DropDownList1_SelectedIndexChanged для ViewState, он всегда вставляет исходное значение, а не обновленное. В этом случае ViewState всегда имеет значение «R» и никогда не изменяется в соответствии с другими выбранными значениями.

Есть идеи?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication11
{
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        if (ViewState["List1_Value"] != null)
        {
            DropDownList1.SelectedValue = ViewState["List1_Value"].ToString();

        }
        else
        {
            DropDownList1.SelectedValue = "R";

        }

    }

    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        ViewState["List1_Value"] = DropDownList1.SelectedValue.ToString();

    }       

}
}

Ответы [ 2 ]

1 голос
/ 15 декабря 2011

Измените метод Page_Load, чтобы обходить код раскрывающегося списка, если он не является отправкой назад.

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        if (ViewState["List1_Value"] != null)
        {
            DropDownList1.SelectedValue = ViewState["List1_Value"].ToString();
        }
        else
        {
            DropDownList1.SelectedValue = "R";
        }
    }
}
0 голосов
/ 14 декабря 2011

Событие Page_Load срабатывает до события SelectedIndexChanged. Когда вы изменяете значение в раскрывающемся списке, значение ViewState по-прежнему равно нулю, поэтому для раскрывающегося списка установлено значение "R"?

Расскажите о следующей статье MSDN, в которой рассматривается жизненный цикл страницы: http://msdn.microsoft.com/en-us/library/ms178472.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...