强制 UpdatePanel 从母版页重新加载
Force UpdatePanel to reload from master page
我的母版页和它的 SelectedIndexChanged
事件中有一个下拉菜单,我希望它重新加载内容页的数据。我将内容页的内容包裹在 UpdatePanel
中,这样我就可以在我的母版页后面的代码中执行此操作:
Protected Sub ddlMyDropdown_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlMyDropdown.SelectedIndexChanged
Session("NewVal") = ddlMyDropdown.SelectedValue
upMyUpdatePanel.Update()
End Sub
然后在内容页面中,我使用下拉菜单设置的值并将其显示到屏幕上:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
lblMyLabel.Text = Session("NewVal")
End Sub
问题是当 upMyUpdatePanel
更新时,它落后了一步,这意味着它反映了此事件之前的一个 SelectedIndexChanged
事件的 ddlMyDropdown
的值。我相信这是因为内容页的 Page_Load
事件在母版页的 SelectedIndexChanged
事件之前触发。
当从母版页的下拉列表中选择新值时,如何更新内容页的内容?
另一种方法是在内容页面上执行所有操作。
您在内容页面上只需要 (C#):
// find the ddl on the master page.
DropDownList ddl = (DropDownList)Page.Master.FindControl("DropDownList1");
// set the label's text.
Label1.Text = ddl.SelectedValue;
您不必设置会话数据。
如果我不需要 SelectedIndexChanged
事件在 代码在我的内容页面运行之前 触发,@wazz 的回答会解决我的问题。
我通过将我的内容页面的 Page_Load
代码移动到 Page_PreRender
中解决了我的问题,以便它在母版页的 SelectedIndexChanged
之后触发。可能不理想,但效果很好。
Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
'Do stuff...
End Sub
我的母版页和它的 SelectedIndexChanged
事件中有一个下拉菜单,我希望它重新加载内容页的数据。我将内容页的内容包裹在 UpdatePanel
中,这样我就可以在我的母版页后面的代码中执行此操作:
Protected Sub ddlMyDropdown_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlMyDropdown.SelectedIndexChanged
Session("NewVal") = ddlMyDropdown.SelectedValue
upMyUpdatePanel.Update()
End Sub
然后在内容页面中,我使用下拉菜单设置的值并将其显示到屏幕上:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
lblMyLabel.Text = Session("NewVal")
End Sub
问题是当 upMyUpdatePanel
更新时,它落后了一步,这意味着它反映了此事件之前的一个 SelectedIndexChanged
事件的 ddlMyDropdown
的值。我相信这是因为内容页的 Page_Load
事件在母版页的 SelectedIndexChanged
事件之前触发。
当从母版页的下拉列表中选择新值时,如何更新内容页的内容?
另一种方法是在内容页面上执行所有操作。
您在内容页面上只需要 (C#):
// find the ddl on the master page.
DropDownList ddl = (DropDownList)Page.Master.FindControl("DropDownList1");
// set the label's text.
Label1.Text = ddl.SelectedValue;
您不必设置会话数据。
如果我不需要 SelectedIndexChanged
事件在 代码在我的内容页面运行之前 触发,@wazz 的回答会解决我的问题。
我通过将我的内容页面的 Page_Load
代码移动到 Page_PreRender
中解决了我的问题,以便它在母版页的 SelectedIndexChanged
之后触发。可能不理想,但效果很好。
Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
'Do stuff...
End Sub