default.aspx頁面有一個DropDownList
,只有當它不是postback
時,它才填充在代碼後面。當選擇一個值時,會調用一個方法,用所選值填充Literal
。它按預期工作。問題是當我將頁面設置爲不是EnableViewState
時,僅在DropDownList
控件中啓用它。在這種情況下,當發回DropDownList
失去其物品。我已經建立了一個新的Web項目來測試它。沒有母版頁使它變得更簡單。EnableViewState在DropDownList中不起作用
的Default.aspx:
<%@ Page Title="Home Page" Language="C#" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="WebApplication4._Default"
EnableViewState="false" %>
<asp:DropDownList ID="DDL" runat="server"
OnSelectedIndexChanged="DDL_OSIC"
AutoPostBack="true"
EnableViewState="true">
</asp:DropDownList>
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
Default.aspx.cs:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DDL.Items.Add("red");
DDL.Items.Add("green");
DDL.Items.Add("blue");
}
}
protected void DDL_OSIC(object sender, EventArgs e)
{
Literal1.Text = DDL.SelectedValue;
}
爲什麼不工作的EnableViewState?
這不是問題的答案。 – bmargulies 2012-09-14 00:35:58