【问题标题】:How do I force asp.net page to postback when I'm in code behind that called by UpdatePanel当我在 UpdatePanel 调用的代码后面时,如何强制 asp.net 页面回发
【发布时间】:2011-10-20 08:18:40
【问题描述】:

当一个 UpdatePanel 调用服务器中的一个方法,例如这个方法改变了

textBox1.Text = "12312"

并且这个 textBox1 超出了 updatePanle 范围 在页面发生回发之前,它不会更改文本

所以我需要经过计算并在服务器中更改文本框的文本,我需要强制页面进行回发

请问有人可以帮忙吗?

【问题讨论】:

  • 如果您想进行完整的回发,为什么还要使用 UpdatePanel?
  • 你能把那个 TexBox 放到另一个 UpdatePanel 中吗?
  • ?如果 TextBox 不在 UpdatePanel 中,但您希望在 PostBack 之后对其进行更新,则需要将其移动到 UpdatePanel 中或将其放入另一个中。

标签: asp.net vb.net updatepanel postback autopostback


【解决方案1】:

如果您想强制刷新,您可以尝试:Response.Redirect(Request.Url.AbsoluteUri) 这应该会强制重定向到当前页面。

希望对你有帮助

【讨论】:

    【解决方案2】:

    如果您希望 UpdatePanel 中的控件执行标准回发,请在 UpdatePanel 中定义 PostBackTrigger,将 ControlID 设置为您希望执行回发的控件的 ID。

    <asp:UpdatePanel ...
    
         ...
    
        <Triggers>
            <asp:PostBackTrigger ControlID="ControlIDToPostBack" />
        </Triggers>
    </asp:UpdatePanel>
    

    或者,您可以将要更新的 TextBox 控件添加到另一个 UpdatePanel,并将 UpdatePanel 的 UpdateMode 属性都设置为 Always。

    这将确保两个 UpdatePanel 控件中的内容都针对源自该页面的所有回发进行更新。其中包括异步回发。

    <asp:UpdatePanel ... UpdateMode="Always"
    

    【讨论】:

    • 如果控件在 UpdatePanel 中,那么您还可以在控件上设置 AutoPostBack=true 属性。如果要触发的控件在UpdatePanel之外,你可以按照你说的使用PostBackTrigger。
    • 第一个解决方案将使您能够在 UpdatePanel 中定义一个控件,该控件将导致整页回发(这意味着对 TextBox 的更改将在回发后反映)。如果这不是一个选项,并且您希望保留异步回发,则可以使用第二种解决方案,但这意味着您需要将 TextBox 包装在另一个 UpdatePanel 中,并按照我的回答中的说明设置 UpdateMode
    猜你喜欢
    • 2011-04-04
    • 1970-01-01
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    相关资源
    最近更新 更多