也許有人可以幫助我。我創建了一個簡單的Web用戶控件,一個日期和時間選擇器,可以放到我的webform上。這一切都很好地工作,我可以設置屬性,使用控制令人滿意的UI等網絡用戶控件持久屬性(視圖狀態,會話,上下文)我是否缺少東西
當談到「使用」控件selected_date_time屬性,我只是不能讓它堅持。沒有......我已經使用視圖,上下文和會話進行了無休止的研究和嘗試。 Onbiouosly會議雖然有效,但它很髒,而且我使用了這個控制的兩個副本(開始和結束時間),所以會話變量確實需要被破解以便開展工作。
我錯過了什麼嗎?控制在每次發生時都會被初始化,並且明顯地失去了它的狀態信息。 ui保持其狀態,因爲我可以選擇一個日期,將該日期寫入標籤,並且這個日期仍然存在。但是,當我嘗試訪問控件的屬性以檢索選定的組合日期和時間時,(它已經在視覺上持續存在),但它什麼都沒有。我調試過,每當我在頁面上做任何形式的帖子,它都會被初始化。
有人可以請爲我闡明這一點嗎?它現在真的開始成爲一個問題。
在此先感謝。
實施例:(簡單的部件)
UC _ save_method
ViewState("var_time") = "My veiwstate text"
形式_read_method
dim str as string = ViewState("var_time")
形式看到沒有在視圖狀態變種
我也試過它與正常的屬性和值,這是不工作,這就是爲什麼我移動到我的屬性意見var的。現在,我只是想讓視圖狀態即使沒有屬性也能工作。
似乎我的形式和控制必須有兩個獨立的視圖狀態?關於視圖狀態,我有點不滿意。
感謝
[解決方案] 你必須在控制的預渲染方法明確重置屬性。我的誤解是,頁面和控件共享相同的單一視圖狀態。發現它的控件和頁面有其獨立的視圖狀態。因此,在你的控件的屬性設置函數中,在viewstate中設置你的值,並且在預渲染時,取這個viewstate值,並設置屬性get variable = - viewstate中的值。
您現在可以訪問您的頁面屬性彷彿一切正常,世界上沒有結束... pheww
感謝cnay指導我。
'Usr control xyz
Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
my_time = ViewState("var_time") 'my_time is the get variable for property date_time
End Sub
'page use
xyz.date_time
我們需要更多信息來幫助你。你能發佈代碼嗎?顯示例子? – 2012-02-13 08:00:27
嗨,我已經添加了,例如 – 2012-02-13 08:05:38