2014-03-05 1 views
1

Panel 안에 radioButtonList이 있습니다. 패널은 UpdatePanel을 사용하여 패널을 업데이트합니다.doPostBack 후 RadioButtonList가 변경되지 않습니다 - 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은 자바 스크립트 기능에 의해 trigerred되어 5 초마다 (나는 타이머가 System.Class.UI에서하지만 난 JS 기능을 사용 할 어떤 이유도 알고) 새로 고칩니다. 다음은 새로 고침 기능입니다 :

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

setInterval(refresh, 5000); 

코드 뒤에, 나는 데이터베이스에서 업데이트 된 값으로 라디오 버튼 값을 설정할 그러나 UI의 변경에는 없다에 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이 (의 5 가정 해 봅시다)에 data.statusID의 값으로 설정되어있는 것을 볼했습니다. 그러나 UI의 라디오 버튼의 값은 여전히 ​​(5 대신) 1과 같습니다. 무엇이 잘못되었으며 어떻게해야합니까?

답변

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();    
} 

당신은 어떤이있는 경우이 기능

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

    setInterval(refresh, 5000); 
</script> 

에게 JS 질문을하고 대답을 얻지 못하면 의견을 묻습니다.

+0

물론 닫는 태그를 추가했지만 여전히 나를 위해 작동하지 않습니다. – user2393874

+0

updatepanel에 콘텐츠 템플릿을 추가하고 업데이트 패널에서 onload를 제거 했습니까? @ user2393874 –

+0

그래도 변경 사항이 없으므로 UI가 업데이트되지 않습니다. – user2393874