2014-03-05 16 views
1

我在Panel中有一個radioButtonList。該面板使用UpdatePanel來更新面板。RadioButtonList在doPostBack之後不會改變 - ASP.NET JS C#

<asp:UpdatePanel ID="upnlTeacherDismissal" runat="server" UpdateMode="Conditional" OnLoad="tmrRefreshTeacher_OnTick"> 
    <asp:Panel ID="pnlDismissalTeacher" runat="server"; color:White; width:100%;"> 
    <asp:RadioButtonList ID="rbtnStatusDismissal" AutoPostBack="true" 
           runat="server" RepeatDirection="Horizontal" OnSelectedIndexChanged="rbtnStatusDismissal_OnSelectedIndexChanged" > 
     <asp:ListItem ID="id1" Text="In Class" Value="1" /> 
     <asp:ListItem ID="id2" Text="Dismiss" Value="4" /> 
     <asp:ListItem ID="id3" Text="Field Trip" Value="5" /> 
    </asp:RadioButtonList> 

在UpdatePanel刷新由JavaScript函數trigerred每5秒(我知道有從System.Class.UI但出於某種原因,我不得不使用JS功能的定時器)。下面是刷新功能:

function refresh() { 
    //update teacher panel 
    __doPostBack('<%=upnlTeacherDismissal.UniqueID%>', ''); 
} 

setInterval(refresh, 5000); 

doPostBack,在後面的代碼,我想設置的單選按鈕值從數據庫中更新的價值,但沒有從用戶界面的任何變化(單選按鈕值仍然是1)。該程序將每5秒執行一次該功能(而不是從rbtnStatusDismissal_OnSelectedIndexChanged)。

protected void tmrRefreshTeacher_OnTick(object sender, EventArgs e) 
     { 
    //... few lines to check the database if table changes 
    rbtnStatusDismissal.SelectedValue = (int)data.statusID; 
    //let's say (int)data.statusID equals 5 
    upnlTeacherDismissal.Update(); 
} 

我試着調試和看到.SelectedValue已經被設置爲data.statusID的值(假設5)。但UI中的單選按鈕的值仍然等於1(而不是5)。 什麼是錯的,我該怎麼辦?

回答

1

其完美的我,你失去了一些東西我編輯和替換的工作,

<asp:UpdatePanel ID="upnlTeacherDismissal" runat="server" UpdateMode="Conditional" > 
    <ContentTemplate> 
    <asp:Panel ID="pnlDismissalTeacher" runat="server" style="color:White; width:100%;"> 
     <asp:RadioButtonList ID="rbtnStatusDismissal" AutoPostBack="true" runat="server" RepeatDirection="Horizontal" OnSelectedIndexChanged="rbtnStatusDismissal_OnSelectedIndexChanged"> 
     <asp:ListItem ID="id1" Text="In Class" Value="1" /> 
     <asp:ListItem ID="id2" Text="Dismiss" Value="4" /> 
     <asp:ListItem ID="id3" Text="Field Trip" Value="5" /> 
     </asp:RadioButtonList> 
    </asp:Panel> 
    </ContentTemplate> 
</asp:UpdatePanel> 

在服務器端

protected void rbtnStatusDismissal_OnSelectedIndexChanged(object sender, EventArgs e) 
{ 
    rbtnStatusDismissal.SelectedValue = "5"; 
    upnlTeacherDismissal.Update();    
} 

和這個js功能

<script type="text/javascript"> 
    function refresh() { 
      //update teacher panel 
      __doPostBack('<%=upnlTeacherDismissal.UniqueID%>', ''); 
     } 

    setInterval(refresh, 5000); 
</script> 

,如果您有任何問題,並不會得到答案,然後在評論中提問。

+0

我已經添加了結束標籤當然,但它仍然不適合我。 – user2393874

+0

您是否在updatepanel中添加了內容模板,並從更新面板中刪除onload .. @ user2393874 –

+0

是的但仍然沒有變化,看起來像UI不會更新 – user2393874