【问题标题】:Response.Write like behavior when code is executed in an Update Panel在更新面板中执行代码时类似 Response.Write 的行为
【发布时间】:2009-08-19 18:29:07
【问题描述】:

有没有办法让 Response.Write 在 UpdatePanel 中工作,并且不会因为明显的原因导致应用出错?或者,有没有一种方法可以在 C# 中不超过一行代码的情况下获得类似的结果?

【问题讨论】:

    标签: asp.net asp.net-ajax updatepanel response.write


    【解决方案1】:

    您可以在更新面板中放置一个文字控件,并使用以下方法获得相同的效果:

    myLiteral.Text += "Some more text!";
    

    【讨论】:

    • 废话,我怀疑。这就是我之前所做的:-(
    【解决方案2】:

    刚刚发现这可能对其他人有帮助。

    您不能在更新面板中使用 Response.Write 或 Response.Redirect。

    要解决这个问题,您必须使用触发器。这用于从更新面板内部进行服务器访问

    <asp:UpdatePanel ID="UpdatePanel9" runat="server">
    <Triggers>
        <asp:PostBackTrigger ControlID="btnExcel" />
    </Triggers>
    <ContentTemplate>
    
      ---Your code here
    
    </ContentTemplate>
    

    这里的 ControlID 是按钮或其他控件。例如,在按钮单击事件中,您可以在响应中写入一些文本。

    【讨论】:

      【解决方案3】:

      获得相似行为(大致相似)的唯一方法是在更新面板中放置一个标签,该标签在该部分回发时得到更新,并将其值设置为某个值(只需一行代码即可设置它)...页面的其余部分根本没有更新,所以你无能为力。

      为什么你仍然想要这个功能?

      【讨论】:

        【解决方案4】:

        Response.Write 不适用于 UpdatePanel,但正如 Spencer 所说,您可以将您的信息放在文字中。

        如果您正在调试,另一个选项是使用System.Diagnostics.Debug.Assert() 函数。这样做的好处是

        1. 您可以将它们放入您的代码中,它们将被编译出一个版本,
        2. 您可以将它们放置在永远不会发生错误的地方,但会在错误发生时弹出通知您(仅在您调试时),并且
        3. 您的代码将在 Assert 行暂停运行,因此您可以确切地知道放置该 Assert 的位置发生了什么。

        与任何东西一样,不要过分将它们放在任何地方,但我发现它是一个非常有用的调试工具。

        【讨论】:

          【解决方案5】:

          我使用的这个问题的一个简单解决方案是调用 JQuery 函数 html() insted 调用 Response.Write()... 例如,假设我想更新 UpdatePanel 中的一些 html 文本,我会这样做:

          使用 Response.Write(),它会很简单: Response.Write("[TextToBeAddedToHTML]");

          但是 Jquery 有点复杂,你必须在 Html 页面中包含 Jquery 库:

          ScriptManager.RegisterStartupScript(this, GetType(), "TextUpdate", "$(\"#[ID_OF_HTML_Element]\").html(\"<p>" + [TextToBeAddedToHTML] + "</p>\");", true);
          

          【讨论】:

          • 你为什么删除stackoverflow.com/questions/3872844/…的帖子?看起来不错。我只是格式化帖子。
          • 哈哈哈,我的第一篇文章,我正在寻找合适的地方放它... :)))
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-01-06
          • 2021-05-19
          • 1970-01-01
          • 2014-11-04
          • 1970-01-01
          相关资源
          最近更新 更多