2017-09-17 34 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

相關問題