2011-01-19 103 views
0

我有幾個動態創建並放置到PlaceHolder中的GridViews。當我將鼠標移動到Select按鈕上時,它顯示__doPostBack('ctl00$bodyPlaceHolder$ctl0X','Select$Y'),其中X =我認爲是頁面的GridView/Control索引,Y = GridView的行號。
由於它是動態創建GridViews,所以將它們命名爲ctl0X是有道理的,但在回發中我該如何使用這些信息?
如果加入SelectedIndexChanged EventHandler,我甚至不會遇到這個問題,但它永遠不會被調用。
我發現了另一個這樣的問題,但答案包括在我的GridView中添加一個GridView,這也必須是動態的,這使我回到了原來的問題。




編輯
好了,所以我設置gridViewDynamic.ID = "blahblah" + r.LastName,從而使每個GridView的一個獨特的名字,所以鼠標懸停在頁面上我得到__doPostBack('ctl00$bodyPlaceHolder$blahblahSmith',Select$Y,我仍然無法訪問在回發的項目,因爲他們不再存在。因此,我將相同的GridView創建代碼添加到if(IsPostBack),然後調用GridView gView = (GridView)this.Page.FindControl(blahblahSmith)。太棒了,gView不爲空。但是行中的所有數據都是。調用gView.Rows[0]返回null。動態GridViews PostbackUrl不是我認爲他們應該是

回答

1

使用Page.FindControl(「TheNameYouGaveTheDynamicGridView」)

GridView grid = Page.FindControl("TheNameYouGaveTheDynamicGridView") as GridView; 

如果您正在使用MasterPages,你需要採取不同的方法來找到頁面上的控制,但它是相同的前提。

+0

這有點幫助,請參閱上面的編輯。 – Marcus 2011-01-19 23:21:31

相關問題