【问题标题】:How can I redirect to the same page and keep textbox values in asp.net?如何重定向到同一页面并将文本框值保留在 asp.net 中?
【发布时间】:2014-01-14 12:25:54
【问题描述】:

我有一个场景,我在将搜索项发送到上一个(父)窗口之前使用弹出窗口来选择它。

我想使用重定向将用户在弹出窗口中单击的搜索值发送回父窗口,并通过查询字符串发送该值。我知道这显然会重新加载页面。

当页面再次加载时,如何将之前的这些值保留或重新分配回页面?

我这样做而不是使用 JS 发送回值的原因是弹出窗口和父窗口可以在许多不同的场景中重复使用,并且传输不同数量的数据,所以我想保留代码隐藏的灵活性。

希望你能帮忙

【问题讨论】:

    标签: c# javascript asp.net webforms textbox


    【解决方案1】:

    我认为从它的声音来看,使用 Viewstate 是可行的。

    protected void Page_Load(object sender, EventArgs e)
    {
        if(ViewState["SomeInformation"] != null)
            NameLabel.Text = ViewState["SomeInformation"].ToString();
        else
            NameLabel.Text = "Not set yet...";
    }
    

    【讨论】:

    • viewstate 的内容是什么,我是否必须在某个时候用文本框值填充它?
    • 嗨 coonersz。是的,你会的。 ViewState["SomeInformation"] = MyValue;
    • 我不完全确定您的应用程序是如何工作的。当您的文本框失去焦点时使用一个事件并将其存储在视图状态中。将是一种方式。 msdn.microsoft.com/en-us/library/… 可能有更好的解决方案,但应该可行
    • 我不确定它是否会起作用,因为页面可以随时刷新,我如何从后面的代码中检查焦点以设置视图状态?
    • 如果页面正在刷新,则存储页面卸载事件中的值。 msdn.microsoft.com/en-us/library/ms178472.aspx 这是页面上发生的最后一件事。然后您可以将上面显示的值存储在视图状态中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    • 2015-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    相关资源
    最近更新 更多