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

标签 c# javascript jquery asp.net updatepanel

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

更新面板每 5 秒刷新一次,由 Javascript 函数触发(我知道 System.Class.UI 有计时器,但由于某种原因我必须使用 JS 函数)。这是刷新功能:

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

setInterval(refresh, 5000);

doPostBack 时,在后面的代码上,我想将单选按钮值设置为数据库中的更新值,但 UI 没有任何更改(单选按钮值仍然是 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>

如果您有任何问题且得不到答复,请在评论中提问。

关于c# - RadioButtonList 在 doPostBack 之后不会更改 - ASP.NET JS C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22192866/

相关文章:

c# - 使用 Entity Framework Core 加载相关数据

javascript - React 获取在 props 中传递的原生元素或子元素的高度和宽度

javascript - 从 ASP.NET Webforms 中的服务器端属性创建 javascript 条件

javascript - 使用 JavaScript 在其他标签之间动态插入 HTML 标签

javascript - 如何遮盖两个半图像并在悬停时显示带有漂亮动画的完整图像

javascript - jQuery - 反向操作

c# - 无法替换文本文件中的字符串

c# - 如何捕获包含在我的以下代码中的 WINDOWS 用户名?

c# - 我如何扩展这个表达式?

javascript - 在提交之前验证表单