0

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

4

5 回答 5

2

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

myLiteral.Text += "Some more text!";
于 2009-08-19T18:30:21.513 回答
2

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

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

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

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

  ---Your code here

</ContentTemplate>

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

于 2011-06-06T00:01:40.237 回答
0

我使用的这个问题的一个简单解决方案是调用 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);
于 2013-05-05T13:27:57.117 回答
0

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

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

于 2009-08-19T18:31:25.160 回答
0

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

System.Diagnostics.Debug.Assert()如果您正在调试,另一种选择是使用该功能。这样做的好处是

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

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

于 2009-08-19T18:34:51.987 回答