簡體   English   中英

ASP.NET參考以服務器aspx.cs服務器代碼的形式動態創建了控件

[英]ASP.NET Reference dynamically created control back in server aspx.cs server code

服務器創建的控件給我帶來的無盡問題繼續存在。

我有不同組的用戶,每個組都有不同的用戶信息。 我正在創建一個頁面,以使用Telerik RadGrid管理組中的用戶。 由於網格列的未知性質,我將完全在服務器上創建網格。 您無法在aspx頁面中定義網格,而無法在服務器aspx.cs代碼中添加列,各種事情都會中斷,例如排序,過濾器和獲取多余的文本

我需要的功能是輸出帶有網格數據的Excel文件。 問題是,如何在服務器回調中引用網格。 如果您查看Telerik Grid Export to Excel ,則有一個按鈕回調,它可以更改服務器上的網格值並在ImageButton_Click中的網格控件上啟動excel導出。 在我的情況下,RadGrid1在Page_Init的服務器中創建,並添加到asp:PlaceHolder。 網格工作正常。

有什么辦法可以在服務器aspx.cs代碼中引用服務器添加的控件。 放置控件ID不會編譯。

謝謝喬治

我了解到添加的控件等效於帶有runtat =“ server”的頁面控件。 要獲得控件,您可以在頁面上具有Runat的已知容器對象上使用find控件。

  protected void Page_Init(object source, System.EventArgs e) { RadGrid adminGrid = new RadGrid(); adminGrid.NeedDataSource += new GridNeedDataSourceEventHandler(AdminGrid_NeedDataSource); adminGrid.ID = "AdminGrid"; // lots of code building adminGrid this.GridPlaceHolder.Controls.Add(adminGrid); } protected void AdminGrid_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e) { // AdminGrid would be the variable name if the control was // in the page with a runat instead of added programmatically // with an id of AdminGrid RadGrid grid = this.GridPlaceHolder.FindControl("AdminGrid") as RadGrid; grid.DataSource = DataSource; } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM