我在这里感觉很Seinfeldian。与UpdatePanels有什么关系?
我已经阅读了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个这样的模块,但我只是希望在我理解之后让工作和优化。
答案 0 :(得分:0)
您需要传递UpdatePanel的ClientID
window.setInterval(function() {
__doPostBack("<%=line2Sched.ClientID%>", '');
}, 3000);
<强> ASPX 强>:
<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>
<script type="text/javascript">
function postBacks() {
__doPostBack("<%=line2Sched.ClientID %>", null);
}
var oUpdatePanels = setInterval(postBacks, 1000);
</script>
代码背后:
protected void Page_Load(object sender, EventArgs e)
{
}
protected void litL2Sched_ResetTable(object sender, EventArgs e)
{
litL2Sched.Text = DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss tt");
}
修改强>
您的javascript需要如下所示:
<script type="text/javascript">
function postBacks() {
__doPostBack("<%=line2Sched.ClientID %>", null);
}
var oUpdatePanels = setInterval(postBacks, 1000);
</script>