我有一个启用了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的值,但它不起作用。有没有人有这个问题,或者知道如何解决这个问题?
感谢。
答案 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');} );});