【发布时间】:2013-06-25 16:41:05
【问题描述】:
我在这里感觉很像宋飞传。与 UpdatePanel 有什么关系?
我已经阅读了 2 天的帖子、博客和书籍。
我有一个用于测试目的的 JS 计时器,用于在 10 秒时进行轮询。我希望它刷新更新面板。更新面板包含文字。加载时更新面板会重新填充文字。它不起作用。
javascript:
__doPostBack("<%=litL2Sched.ClientID %>");
这会导致完整的回发,我的页面闪烁,然后我的眼睛充满了悲伤的泪水。
__doPostBack("<%=btnL2Refresh.ClientID %>");
这几乎没有任何作用。有人告诉我这会奏效。当我单击按钮时,它按预期工作,但不会随着计时器而下降。
页面标记:
<asp:UpdatePanel ID="line2Sched" runat="server" UpdateMode="Conditional" OnLoad="litL2Sched_ResetTable" >
<ContentTemplate>
<asp:Literal runat="server" ID="litL2Sched" ></asp:Literal>
<asp:Button runat="server" ID="btnL2Refresh" />
</ContentTemplate>
</asp:UpdatePanel>
我尝试过使用和不使用触发器,我的脚本管理器允许使用部分。
我真正想做的就是在我的低级更新面板上强制回发。
编辑: 间隔代码
var oUpdatePanels = setInterval(function () { postBacks() }, 10000);
function postBacks(){
__doPostBack("<%=btnL2Refresh.ClientID %>", null);
}
我还有一些其他的东西正在那里进行测试,但不会影响这一点。澄清一下,我有 5 个这样布置的模块,但我只想让其中一个工作并在我理解后进行优化。
【问题讨论】:
-
尝试将 null 作为 __doPostBack 的第二个参数传递
-
仍然进行完整的回发。我应该补充一下,我已经在那里很长时间了,“”作为我的第二个参数。
-
你试过按钮了吗? Literal 控件没有任何事件,因此它不应该导致回发。
-
有道理,但更新面板不会在计时器上刷新。正如今天早些时候我在玩时的旁注一样,我将按钮的可见属性设置为 false,并且回发转义到整个页面。
-
与其使用原生 JS 计时器并尝试自己调用回发,不如在标记中使用
ASP计时器。即使您可以让您的方法发挥作用,但对于未来的开发人员来说,使用和维护它会比标记中的一行更难。
标签: c# asp.net updatepanel