2013-06-25 75 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