【问题标题】:How to Pass Variables in ASP.NET PostBack?如何在 ASP.NET PostBack 中传递变量?
【发布时间】:2018-11-08 15:52:48
【问题描述】:

我正在尝试通过 PostBack 将变量传递回 ASP.NET 网页。按钮按下的状态变量存储在 ViewState 中。这里的问题是我需要按两次按钮才能将更改的状态发送到页面。

ViewState 被 Page_Load 读取:

protected void Page_Load (object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        ViewState["Print"] = "Small";
        Response.Write ("Status: " + ViewState["Status"].ToString());
    }
    else
        Response.Write ("Status: " + ViewState["Status"].ToString());
}

按钮按下的 ViewState 由以下方式设置:

protected void ImageButton_LargeStatus_Click (object sender, ImageClickEventArgs e)
{
    ViewState["Status"] = "Large";
}

为什么我需要按两次 ImageButton 才能更改 ViewState?

谢谢。

【问题讨论】:

  • 去掉“!”?
  • 您期待什么? ImageButton_LargeStatus_Click 在 PostBack 之后和该 PostBack 中的 Page_Load 之后运行。所以你只能在第二个 PostBack 中查看“Large”。

标签: asp.net viewstate


【解决方案1】:

因为您第一次使用错误的键更新 ViewState...

替换下一行

ViewState["Print"] = "Small";

ViewState["Status"] = "小";

【讨论】:

  • 抱歉,编辑代码时打错字了。所有的 ViewState 都是 ViewState ["Status"],但它们需要按下 2 次图像按钮才能更新为正确的值。
猜你喜欢
  • 1970-01-01
  • 2017-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-15
  • 2017-03-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多