有没有办法让Response.Write在UpdatePanel中工作,而不是因为显而易见的原因导致应用程序出错?或者,有没有办法在C#中没有多行代码的情况下获得类似的结果?
答案 0 :(得分:2)
您可以在更新面板中放置一个文字控件,并使用以下方法产生相同的效果:
myLiteral.Text += "Some more text!";
答案 1 :(得分:1)
刚发现这对其他人有帮助。
您无法在更新面板中使用Response.Write或Response.Redirect。
要解决此问题,您必须使用Trigger。这用于从更新面板内部使服务器脱机
<asp:UpdatePanel ID="UpdatePanel9" runat="server">
<Triggers>
<asp:PostBackTrigger ControlID="btnExcel" />
</Triggers>
<ContentTemplate>
---Your code here
</ContentTemplate>
这里的ControlID是按钮或其他控件。例如,在按钮单击事件中,您可以在响应中写入一些文本。
答案 2 :(得分:0)
获得类似行为(松散相似)的唯一方法是在更新面板中放置一个标签,该面板在部分回发上得到更新,并将其值设置为某个值(只需要设置一行代码)它... ...页面的其余部分根本没有更新,所以你无能为力。
为什么你还想要这个功能呢?
答案 3 :(得分:0)
Response.Write
不适用于UpdatePanels,但正如Spencer所提到的,您可以将信息放在文字中。
另一种选择是使用System.Diagnostics.Debug.Assert()
函数,如果您正在调试。这样做的好处是
与任何事情一样,不要过分夸大它们,但我发现它是一个非常有用的调试工具。
答案 4 :(得分:0)
我使用的这个问题的简单解决方案是调用JQuery函数html()insted调用Response.Write()...例如,假设我想更新UpdatePanel中的一些html文本我会做这样的事情:< / p>
使用Response.Write(),它会很简单: 回复于( “[TextToBeAddedToHTML]”);
但是Jquery有点复杂,你必须将Jquery库包含到Html页面中:
ScriptManager.RegisterStartupScript(this, GetType(), "TextUpdate", "$(\"#[ID_OF_HTML_Element]\").html(\"<p>" + [TextToBeAddedToHTML] + "</p>\");", true);