繁体   English   中英

在doPostBack之后,RadioButtonList将不会更改-ASP.NET JS C#

[英]RadioButtonList won't change after doPostBack - ASP.NET JS C#

我在Panel内有一个radioButtonList 该面板使用UpdatePanel更新其面板。

<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每5秒钟刷新一次,这由Javascript函数触发(我知道System.Class.UI有计时器,但是由于某些原因我必须使用JS函数)。 这是刷新功能:

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

setInterval(refresh, 5000);

在后台代码上执行doPostBack ,我想将单选按钮值设置为数据库中的更新值,但UI没有任何更改(radiobutton值仍为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)。 怎么了,我该怎么办?

它完全适合我,您丢失了我编辑过的内容并替换了它

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

如果您有任何问题而无法获得答案,请在评论中提问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM