【问题标题】:dropdownlist displays wrong item after refreshing page in Firefox在 Firefox 中刷新页面后下拉列表显示错误的项目
【发布时间】:2012-05-13 10:01:12
【问题描述】:

我在更新面板中有一个下拉列表

<asp:UpdatePanel ID="UpdatePanelTables" UpdateMode="Conditional" runat="server">
<ContentTemplate>
                <asp:DropDownList ID="DropDownListTournamnets" AutoPostBack="true"  OnSelectedIndexChanged="OnIndexChanged"
                    runat="server">
                    <asp:ListItem Value="1" Text="Something1"></asp:ListItem>
                    <asp:ListItem Value="2" Text="Something2"></asp:ListItem>
                </asp:DropDownList>
</ContentTemplate>
<asp:/UpdatePanel>

当我选择某个项目时,下拉菜单会回发并且更新面板中的内容会更改。当我刷新页面(使用 f5)时,加载的内容对应于 index=0 的项目,但下拉列表显示刷新之前的项目,如果我现在选择第一个项目回发不会发生。问题仅在 Firefox 中。

【问题讨论】:

  • 好的,您已经确定问题出在客户端上,尤其是在 FF5 中。那么你到底为什么要向我们展示服务器端代码而不是你的 HTML?!?!?!
  • html 没问题。当使用 ctrl+f5 刷新页面时一切正常
  • 你正在用F5刷新页面,在这种情况下整个页面的内容应该是“重置”。当页面加载并且您没有将它们保存在其他地方时,这是预期的行为。我已经在 FF 中测试了您的示例,刷新页面后,下拉列表的回发仍然对我有效。发布一些代码以更好地复制您的问题。
  • 问题是当我选择“Something2”并刷新页面时,SelectedValue是1,但它仍然显示“Something2”,必须是“Something1”

标签: asp.net firefox drop-down-menu refresh


【解决方案1】:

如果您确实需要在 FF 上刷新时重置该下拉菜单,请这样做:

<head>
<script type="text/javascript">
function resetddp(){
    var ddl=document.getElementById('DropDownListTournamnets');
    ddl.options[0].selected=true;
}
</script>
</head>

<body onload="resetddp();">
<!--The rest of your code here-->
</body>

【讨论】:

    【解决方案2】:
    $(document).ready(function ()
    {
        $("#content_ProjectName option[value='1']").prop("selected", true);
    });
    

    显示下拉菜单的第一项 ProjectName.ClearSelection();
    将此代码放在您的设计页面中以在所有浏览器上工作,并将其放在页面加载后的代码中

    【讨论】:

      猜你喜欢
      • 2014-03-16
      • 2012-02-06
      • 1970-01-01
      • 1970-01-01
      • 2021-12-11
      • 2013-07-18
      • 1970-01-01
      • 2012-11-18
      • 2015-06-21
      相关资源
      最近更新 更多