我正在开发一个庞大而复杂的ASP.NET项目。
我有一个动态加载的Web用户控件,其UpdatePanel无法正确更新。 UpdatePanel是从JavaScript函数触发的。
我设法创建了一个非常简化的项目来演示该问题并将其发布在http://www.softcircuits.com/Client/TestProject.zip。
如果对这些技术有更深入了解的人能够看一眼并指出我正确的方向,我将非常感激。
答案 0 :(得分:1)
尝试在UpdatePanel的OnPreRender事件而不是OnLoad中设置文本框值。
答案 1 :(得分:1)
我想我发现了正在发生的事情。我知道UpdatePanel回发就像一个普通的回发,但只有一部分页面被发送回客户端。所以我玩了一下,发现HalfTrackMindMan提到的工作正如预期的那样。然后我向谷歌询问了有关UpdatePanels的常见错误,并找到了解释出现问题的this article。
这就是实际发生的事情。
因此,如果您将测试放在其中一个文本框中并按下按钮,您会看到“测试”值会转到服务器并返回。
1|#||4|356|updatePanel|MainContent_WebUserControl11_ctl00_UpdatePanel1|
<p>
Message:<br />
<input name="ctl00$MainContent$WebUserControl11$ctl00$TextBox1" type="text" value="testing" id="MainContent_WebUserControl11_ctl00_TextBox1" />
</p>
因此,要在更新面板中更新input元素的值,您需要在Pre_render事件中执行此操作。另一方面,您可以更新on_load上的标签,它将起作用。
希望有所帮助。