2013-06-25 38 views
0

我感觉很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

尝试传递null作为__doPostBack – Rob

+0

第二个参数仍然没有完全回发。我应该补充一点,我在那里已经有很长一段时间了,作为我的第二参与者。 – Bmo

+0

您是否尝试过按钮? Literal控件没有任何事件,所以它不应该导致回发。 – Rob

回答

0

你需要传递的UpdatePanel的客户端ID

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> 
+0

'null'和'“”'都回发整个页面。 – Bmo

+0

已更新的答案。 – Rob

+0

Bah,完全回发。奇怪的是我去了页面源我得到以下内容:''作为updatePanel的翻译和'__doPostBack(“#MainContent_line2Sched”,“”);''作为翻译的JavaScript。 – Bmo