ASP.NET DropdownList autopostback和浏览器后退按钮

时间:2009-08-05 21:24:55

标签: c# .net asp.net javascript html

我有一个启用了autopostback的asp.net下拉列表。它不是动态填充的,其值在HTML代码中是固定的:

<asp:dropdownlist id="ddlReportView" runat="server" autopostback="True" onselectedindexchanged="ddlReportView_SelectedIndexChanged" enableviewstate="true">
    <asp:listitem  text="Snapshot" value="SNAPSHOT"></asp:listitem>
    <asp:listitem  text="Detailled" value="DETAILLED"></asp:listitem>
    <asp:listitem  text="Review" value="REVIEW"></asp:listitem>
    <asp:listitem  text="Review Summary" value="REVIEW_SUMMARY"></asp:listitem>

</asp:dropdownlist>

如果我选择一个项目,它会重新加载页面以显示具有不同格式的列表。我的问题是当我点击后面的浏览器按钮时,下拉列表的值仍然是最后选择的值。

示例:

首先,列表处于Snaphshot模式: alt text http://img44.imageshack.us/img44/3749/37948756.png

用户然后点击Review Summary模式: alt text http://img36.imageshack.us/img36/545/96184426.png

页面现在显示评论摘要网格,一切正常: alt text http://img17.imageshack.us/img17/8239/13194229.png

用户按下后退按钮,网格以快照模式显示(即可),但是 下拉菜单仍显示“评论摘要”! alt text http://img190.imageshack.us/img190/6747/22053199.png

我尝试使用javascript设置select的值,但它不起作用。有没有人有这个问题,或者知道如何解决这个问题?

感谢。

4 个答案:

答案 0 :(得分:2)

我设法使用jQuery来运行这个javascript ...

$(document).ready(function() {
    //Reset drop down list
    $("#<%= dropDownList1.ClientID %> > option:first").attr("selected", "selected");        
});

或者初始值应该是'SNAPSHOT'选项......

$(document).ready(function() {
    $("#<%= dropDownList1.ClientID %>").val("SNAPSHOT");
});

答案 1 :(得分:0)

试试这个。我看到没有人回答你的问题,所以这是我的镜头。

在页面上创建一个表单,让我们将其命名为frm1。

身体上的onload会产生与此类似的功能。

function checkrefresh()
    {
        if(frm1.visited.value == '' || frm1.visited.value == null) 
        {
            document.frm1.visited.value = "1";
        }
        else
        {
           document.getElementById('<%=ddlReportView.ClientId%>').selectedvalue='SNAPSHOT';
        }
    } 

如果有效,请告诉我。

答案 2 :(得分:0)

在.aspxs的标题中关闭SmartNavigation属性(或者在web.configs中,该属性是可继承的,因此如果将其放在根目录中,它将对整个站点生效)

答案 3 :(得分:0)

你可以点击浏览器后退按钮

$(function(){jQuery(window).bind(“unload”,function(){$(“#”)。val('0');} );});