我有一个带有Site.Master页面和其他几个.aspx页面的VB项目。我在Site.Master上有一个asp:DropDownList。当用户更改下拉选项时,我希望显示的任何.aspx页面都刷新 - with PostBack,就好像用户更改了.aspx页面上的设置并导致PostBack到该页面。 / p>
目前,我使用
进行整页刷新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页面执行正常的回发,而不是完全刷新?
答案 0 :(得分:1)
选择DropDownList更改后,应该调用Page的加载事件处理程序(Page_Load),在调用ddlPlant_SelectedIndexChanged之前,Page的PostBack属性等于True。如果您必须在该方法完成后再次调用它,只需调用您的事件处理程序以获取页面加载事件:
Protected Sub ddlPlant_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles ddlPlant.SelectedIndexChanged
Page_Load(Nothing, Nothing)
End Sub
答案 1 :(得分:0)
正如Don Jayamanne上面所说 - 解决方案是从我的代码中删除Response.Redirect行,这将导致正常的PostBack。谢谢!