2015-10-21 33 views
0

我有一個帶有Site.Master頁面和幾個其他.aspx頁面的VB項目。我在Site.Master上有一個asp:DropDownList。當用戶更改下拉選擇時,我希望顯示哪個.aspx頁面會刷新 - 回發,就好像用戶更改了.aspx頁面上的設置並導致回發到該頁面。引起回傳頁面刷新頁面vb

目前,我有

Protected Sub ddlPlant_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles ddlPlant.SelectedIndexChanged 
    Response.Redirect(HttpContext.Current.Request.Url.ToString(), True) 
End Sub 

問題一整頁刷新:刷新這一切,這重置下拉列表,清除任何會話數據,並清除所有用戶輸入數據的.aspx頁面中會通常在回發期間保存。

如何讓.aspx頁面和Site.Master頁面執行普通回發而不是完全刷新?

+1

只需從ddlPlant_SelectedIndexChanged方法中刪除代碼,即可執行標準回發 – Don

回答

1

在選擇DropDownList更改後,應該在調用ddlPlant_SelectedIndexChanged之前調用Page的PostBack屬性等於True來調用Page的Load事件處理程序(Page_Load)。如果你必須在方法完成後再次調用它,只需調用事件處理程序的頁面加載事件:

Protected Sub ddlPlant_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles ddlPlant.SelectedIndexChanged 
    Page_Load(Nothing, Nothing) 
End Sub 
+0

這確實會導致我的Site.Master的Page_Load函數再次運行,謝謝。不是我的具體問題的解決方案,但對未來肯定很好。 – steelerose

0

正如唐Jayamanne上面所說的 - 該解決方案是從我的代碼中刪除的Response.Redirect行,它會導致一個正常的PostBack。謝謝!