2011-11-27 30 views
2

根據數據庫中的數據,我動態地創建了幾個gridviews。 我產生在GridView在foreach語句如下:Dynamic gridview - 如何在rowdatabound中引用

GridView gdv = new GridView(); 
gdv.ID = "gdv" + i.ToString(); 
gdv.SelectedIndexChanged += new EventHandler(gdv_SelectedIndexChanged); 
gdv.RowDataBound += gdv_RowDataBound; 

的RowDataBound如下所示:

protected void gdv_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    {    
     e.Row.Attributes["onclick"] = ClientScript.GetPostBackClientHyperlink(((GridView)sender), "Select$" + e.Row.RowIndex); 
    } 
} 

這一切都按預期工作,但是((GridView的)發件人)返回以下值:

'gdv00' 

什麼,我需要回到此鏈接到工作如下:

'ctl00$ctl00$MainContent$Main$gdv0' 

很確定這與母版頁有關?但不知道如何在rowdatabound事件中正確引用它?

回答

0

ctl00 $ ctl00 $ MainContent $ Main $ gdv的ID是網格控件的UniqueID屬性(客戶端ID由_分隔)。這是呈現給瀏覽器的ID。我認爲這裏的問題是控制不會立即添加到控制樹中,這對過去一些人來說是一個問題。試試這樣做:

GridView gdv = new GridView(); 
gdv.ID = "gdv" + i.ToString(); 
panel.Controls.Add(gdv); 

//set grid props 

HTH。

+0

完美!工作了一個治療,只是改變面板添加之前,我綁定數據綁定,現在它的作品 謝謝。 – emong

相關問題