2009-06-12 21 views
0

這一個是有點奇怪。基本上我有一個表單,我正在使用ASP.NET動態數據,它將使用幾個自定義字段模板。動態控制在錯誤的時間加載?

我剛剛加入另一場FormView控件,用它自己的自定義模板,表單是加載,對於無緣無故控制的兩倍。更糟糕的是,它第一次加載模板時,行還沒有準備好,我得到錯誤信息:

數據綁定方法如Eval(),XPath()和Bind()只能用於數據綁定控件

我訪問一個的LinqDataSource OnSelected事件行變量,以獲得子對象的背景下...

現在的奇怪的一部分:如果我重新排序字段一點,導致問題的那個不再被加載兩次。

有什麼想法?

編輯:我注意到,Page_Load中被稱爲第一負載,但不會繞過第二次調用(當行如果您嘗試使用它拋出一個異常)。如果這能幫助任何...

現在僅通過捕捉和忽略例外,但還是有點擔心,事情會打破,如果我沒有找到真正的原因是管理。

編輯2:我追蹤的問題,使用的FindControl遞歸地找到網頁上的其他控件。顯然,FindControl可以導致頁面生命週期事件(至少達到page_load)觸發......並且在頁面「應該」加載之前發生,因此它的動態數據「stuff」還沒有準備好。

+0

我想,你正在做的是,你已經FormView控件的頁面和FormView綁定到使用LinqDataSource上,你必須要在FormView控件來填充,當你想保存/更新記錄,你需要一些定製/附加字段自定義/附加字段值????? – 2009-06-16 12:10:33

+0

你可以告訴我你的代碼,你如何添加自定義模板? – 2009-06-16 12:22:26

回答

0

你不是指在Page_Load中設置在OnSelected的東西,對嗎?像你的行對象。 OnSelected是回發事件,發生在Page_Load之後。這是我能想到的唯一的事情,當行未準備就緒時可能會導致異常。

0

開始在代碼中評論事情,直到任何事情都被評論或者控件不再加載兩次。

如果它仍然在做,就開始在控件本身中取消掛鉤。最終,你會遇到實際問題。