我已經將多個用戶控件嵌入到同一頁面中。用戶控件通常有2個不同的視圖,一個編輯/默認視圖和一個完整的視圖。當用戶完成編輯時,我將MultiView切換到完成狀態。這種模式在頁面中可以正常工作。將多個用戶控件嵌入到頁面中?
問題是當我回到主視圖/頁面然後用戶帶回控件時,視圖仍處於完成狀態。
什麼是一些簡單的方法來重置/糾正多視圖狀態?我可以在每個控件上都有一個Reset()函數,但感覺我可能會避免這種情況。
更新:
本頁面旨在顯示賬號/縱斷面圖,它有以下幾個部分:
<asp:MultiView>
...read only view
<asp:EmailEditView>
<asp:AccountEditView>
等。
,然後將每個這些意見有用戶控制。裏面的用戶控制,我們有這樣的事情
<asp:multiview>
<asp:view id="edit"/>
<asp:view id="completed"/>
我發現這種設計存在以下問題:
當用戶完成用戶控制的動作如改變的電子郵件。即使再次返回,視圖仍處於完成狀態。
當用戶回到原始表單時,數據已過時。這種設計真的與回發機制相結合。如果我不使用!IsPostBack在數據綁定的主窗體上,那麼我的子窗體上的下拉列表將不起作用。但是,一旦我在主窗體上添加!isPostBack,數據就會變陳舊。
我可以添加一個「重置」標誌,每一個用戶的控制,並添加像這樣
if ((!IsPostback) || (reset))
除了重置視圖。在另一種情況下,我可以添加一個事件處理程序來加載重新加載/綁定數據,當用戶點擊「後退」時,即我改變表單的位置。
代碼?我們可以看到一些代碼嗎? – 2010-12-13 20:56:11
我不知道什麼「問題是當我回到主視圖/頁面,然後用戶帶回控件,視圖仍處於完成狀態。」手段。 – Greg 2010-12-13 21:22:15
@Greg我認爲將用戶控件嵌入到這樣的頁面中用於表單編輯是一個壞主意,因爲現在我必須跟蹤用戶控件的狀態。 – 2010-12-13 21:25:01