2017-09-17 36 views
0

下拉列表和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代码,强制页面刷新按下浏览器后退按钮,但它并没有解决我的问题,并创造更多。我已经尝试使用更新面板来解决我的问题,并且它在这里无法解决我的问题。很抱歉,在这篇长文章中,我无法做得更好,以缩短写作时间。

回答

0

您可能会将您的页面缓存起来,这就是您点击后退按钮时行为不符合您要求的原因。尝试将此代码添加到您不希望被翻译的页面上的page_load。

Response.Cache.SetCacheability(HttpCacheability.NoCache); 

希望这会有所帮助!

+0

Hi @chrillelundmark,感谢您分享您的回复。我在页面的Page_Load方法中添加了上面提到的那一行,但是它似乎没有帮助。 – Janit

相关问题