如何动态更改视图状态值?

时间:2011-07-27 07:32:09

标签: c# asp.net

我的页面中有文本框和按钮控件。对于文本框我启用了视图状态,页面加载事件我设置文本框值“Hello Mr!”。现在我想将文本框的视图状态值更改为“Hello Mr Pradeep!”,当回发发生时,我该怎么做?我可以在其中完成所有页面事件。

<asp:TextBox ID="TextBox1" runat="server" EnableViewState= "true"/>
        <br />
        <br />
        <asp:Button ID="Button1" runat="server" Text="Button"  />

protected void Page_Load(object sender, EventArgs e)
        {
            TextBox1.Text = "Hello Mr!";
        }

谢谢,

与Pradeep

2 个答案:

答案 0 :(得分:0)

据我了解你的问题,你可以使用页面加载事件上的javascript来做到这一点

答案 1 :(得分:0)

您的页面正在检索页面初始化和页面加载事件之前的viewstate。因此,您可以更早地尝试更改视图状态是在页面加载中。 因为如果您在检索之前修改它,您的更改将会丢失。

 protected override void OnInit(EventArgs e)
        {
            if (IsPostBack)
            {
                //on postback ViewSate["test"] is null
                ViewState["test"] = "Valuepostback";
                //Now ViewSate["test"] is Valuepostback

            }
            base.OnInit(e);
        }
        protected override void OnLoad(EventArgs e)
        {
            if (IsPostBack)
            {
                //on postback ViewState has been reloaded from the page sent and therefore the initial value set in the oninit does not exists anymore
                //ViewState["test"] is MyValue
                //if  you want to cahnge specifically the view state do it here
            }

            if (!IsPostBack)
                ViewState["test"] = "MyValue";

            base.OnLoad(e);
        }