由於.ascx文件在頁面生命週期的早期自然呈現,如果我想更新.ascx部分外部的表單上的信息,如何刷新.ascx文件以反映這些變化,說按鈕點擊(保存信息的同一個)?刷新.ascx文件中的內容
例如(僞):
由於.ascx文件在頁面生命週期的早期自然呈現,如果我想更新.ascx部分外部的表單上的信息,如何刷新.ascx文件以反映這些變化,說按鈕點擊(保存信息的同一個)?刷新.ascx文件中的內容
例如(僞):
如果您正在根據保存的數據創建正在構建的用戶控件。你可以做的是創建一個具有該建築物的方法,然後將網頁和用戶控件中調用它(僞):
用戶控件:
protected Page_Load(object sender, EventArgs e)
{
BuildControlBasedOnData();
}
public BuildControlBasedOnData()
{
// Build the user control based on saved data
}
調用頁面:
Button_Click(object sender, EventArgs e)
{
UserControl1.BuildControlBasedOnData();
}
用戶控件(.ascx文件)包含頁面生命週期中呈現,就像你提到。當你做一個按鈕點擊包含頁面上的回發時,在回發加載時,用戶控件將被完全重新渲染。如果您需要的用戶控件包含在此負載不同的信息有很多事情可以做:
還有很多其他選項。如果您正在討論部分回發或AJAXy類型的東西,那麼您可能必須使用JavaScript來更新用戶控件的不同部分(除非您使用UpdatePanel,而不應該因爲它們是惡魔) 。
我提出了我認爲是不完善但可用的解決方案。我所做的只是在我的.ascx文件Public
中創建Page_Load
函數,然後在保存信息後調用它。這照顧了我的問題。
如果有人有更優雅的解決方案,請讓我知道!
這不會告訴我如何在信息被保存在page_load函數之外後重新呈現用戶控件... – Jason 2009-08-24 19:45:28