我在運行時將控件添加到Page Form
對象。如何從動態構建的表單訪問回發上的表單控件
每個控件都有一個Id。
在回發上,我希望能夠訪問這些控件及其值。
當前,當我做回發時,表單在Form.Controls
集合中沒有控件。
我該如何解決這個問題?
只有當您每次頁面加載時將控件添加到頁面時,這是唯一可能的嗎?
我在運行時將控件添加到Page Form
對象。如何從動態構建的表單訪問回發上的表單控件
每個控件都有一個Id。
在回發上,我希望能夠訪問這些控件及其值。
當前,當我做回發時,表單在Form.Controls
集合中沒有控件。
我該如何解決這個問題?
只有當您每次頁面加載時將控件添加到頁面時,這是唯一可能的嗎?
動態添加的控件需要在每次頁面加載時添加,否則它們將丟失。
但是,只要這些控件的視圖狀態始終以相同的ID添加,就可以保持它們的狀態。
我相信你必須動態添加控件才能在回發中訪問它們。所以如果你動態添加一個文本框,你的事件處理程序不能檢索它的值,除非你再次添加它。
編輯:我使用的一種解決方法是添加一組預定義的服務器控件到頁面,然後使用JavaScript來隱藏/顯示這些元素。您可以避免回發,並避免與從動態添加的服務器控件檢索值相關的不必要的湯姆 - foolery。當然,這會將您限制爲預定義數量的控件。
這是我的ASP.NET Web窗體的一大寵物,也是我決定探索ASP.NET MVC的一個因素 - 沒有更多的視圖狀態/回發混亂。
我對此不高興,但我不情願接受。 – Dave 2009-11-25 15:22:00