0

我有一个TextBoxnamedTextBoxValue和一个ButtonnamedButtonGetValue位于ASP WebFormnamed上DestinationPage.aspx。我正在做的是TextBox用我从上一页使用传递到此页面的值填充QueryString. 我正在通过以下方式实现它:

<asp:Button ID="ButtonCompute" runat="server" Text="Compute" OnClick="ButtonCompute_Click" ValidationGroup="ComputeGroup"/

ButtonCompute位于ButtonSourcePage.aspx,单击它只需将数据传递给DestinationPage.aspxfrom SourcePage.aspx。这不是Button我之前所说的。

中的代码SoucePage.aspx.cs

int valueForDestination = 10; 
Response.Redirect("~/DestinationPage.aspx?Value = + valueForDestination);

中的代码DestinationPage.aspx.cs

int valueFromQS = Request.QueryString["Value"];
TextBoxValue.Text = valueFromQS;

<asp:Button ID="ButtonGetValueValue" runat="server" Text="Get Value" onclick="ButtonGetValue_Click" /> 

现在,我在这里所做的是,一旦值显示在 中TextBoxValue,将其更改为100from 10。然后我点击ButtonGetValue。但不是得到100; 这是我得到的更新值10;这是初始值。如何获得更新的值?

编辑 1.0 我很抱歉没有明确提及我想要做什么ButtonGetValue。这Button只是从 中读取值TextBox并在屏幕上打印该值。

我正在努力ASP.NET WebForms

4

1 回答 1

0

除非您希望它在每次回发时更改为 QueryString 值,否则您希望将其包装在 !IsPostBack

if (!Page.IsPostBack)
{
    if (Request.QueryString["Value"] != null) 
    {
        TextBoxValue.Text = Request.QueryString["Value"].ToString();
    }
}

同样在您的示例代码中,您在查询字符串中传递了 10,并且您还说默认值为 10,如果您希望它为 100,那么您需要在按钮单击事件中将 100 传递给查询字符串。

于 2017-12-13T15:55:54.893 回答