所以我有一個列表框在我的頁面和一些文本框。通過文本框我可以添加一個項目到我的列表框中(點擊按鈕,它將它添加到一個私人列表中,然後將其設置爲ViewState,並且該列表再次是數據綁定)。我的列表框也位於按鈕的Click事件觸發的updatepanel中。問題:我的Viewstate在回發中保持爲空,因此每次都會重置。Viewstate null on postback
一些代碼:
private const string VIEW_INGREDIENTS = "IngredientsList";
private const string VIEW_LANGUAGE = "CurrentLanguage";
private List<IngredientData> _ingredientsList;
protected void Page_PreInit(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
if (ViewState[VIEW_INGREDIENTS] != null)
{
_ingredientsList = (List<IngredientData>) ViewState[VIEW_INGREDIENTS];
}
}
else
{
// prepare ingredient lists
_ingredientsList = new List<IngredientData>();
}
}
protected void Page_Load(object sender, EventArgs e)
{
lstIngredients.DataSource = _ingredientsList;
lstIngredients.DataTextField = "Text";
lstIngredients.DataValueField = "Name";
lstIngredients.DataBind();
}
protected void btnAddIngredient_Click(object sender, EventArgs e)
{
_ingredientsList.Add(new IngredientData { Name = txtIngredientName.Text, Quantity = txtUnitQuantity.Text, Unit = lstUnits.SelectedValue });
ViewState[VIEW_INGREDIENTS] = _ingredientsList;
lstIngredients.DataSource = _ingredientsList;
lstIngredients.DataBind();
}
這似乎解決了它!謝謝! – Fverswijver 2011-06-09 10:02:24
+1真棒,不敢相信我忽略了:D – Andomar 2011-06-09 10:24:22
哇,很高興知道 – Jim109 2015-11-16 18:44:14