Dropdownlist autopostback属性即使在GridView或任何其他控件上单击其他选项时也会触发
问题描述:
下拉列表和gridview位于同一页面上。Dropdownlist autopostback属性即使在GridView或任何其他控件上单击其他选项时也会触发
代码下拉列表: -
<asp:DropDownList OnSelectedIndexChanged="drplist_SelectedIndexChanged"
AutoPostBack="true" ViewStateMode="Disabled" AppendDataBoundItems="true"
ID="drplist" runat="server" DataSourceID="datasource1"
DataTextField="User_ID" DataValueField="User_ID">
<asp:ListItem Value="" Text="Make a selection"/>
</asp:DropDownList>
代码的GridView: -
<asp:GridView ID="gview" runat="server" Width="100%" AutoGenerateColumns="false" DataKeyNames="User_ID" DataSourceID="datasource">
<Columns>
<asp:BoundField DataField="User_ID" HeaderText="User ID" />
<asp:BoundField DataField="User_Name" HeaderText="User Name" />
<asp:BoundField DataField="User_Email" HeaderText="User e-mail" />
<asp:BoundField DataField="User_Mob" HeaderText="User mobile number" />
<asp:BoundField DataField="User_Created" HeaderText="Created Date" />
<asp:CommandField ShowDeleteButton="true" ShowEditButton="true" />
</Columns>
</asp:GridView>
下拉从数据库中有用户ID和当选择从下拉制成它激发它selectedIndexChanged事件,代码相同: -
protected void drplist_SelectedIndexChanged(object sender, EventArgs e)
{
var index = drplist.SelectedValue;
drplist.SelectedIndex = 0;
Response.Redirect("~/Demo/TableDemo.aspx?User_ID="+index);
}
现在,当我点击浏览器的后退按钮,下拉菜单仍保留着选择的值,我不想,我希望它在我返回从TableDemo的下拉列表重置为索引0。 aspx页面,然后点击gridview中的编辑按钮或删除按钮,下拉菜单的回传会再次触发,并将我带到TableDemo.aspx页面。只有手动页面刷新才能使事情保持直线。我试图搜索和实现JS代码,强制页面刷新按下浏览器后退按钮,但它并没有解决我的问题,并创造更多。我已经尝试使用更新面板来解决我的问题,并且它在这里无法解决我的问题。很抱歉,在这篇长文章中,我无法做得更好,以缩短写作时间。
答
您可能会将您的页面缓存起来,这就是您点击后退按钮时行为不符合您要求的原因。尝试将此代码添加到您不希望被翻译的页面上的page_load。
Response.Cache.SetCacheability(HttpCacheability.NoCache);
希望这会有所帮助!
Hi @chrillelundmark,感谢您分享您的回复。我在页面的Page_Load方法中添加了上面提到的那一行,但是它似乎没有帮助。 – Janit