我从服务器创建的控件中无休止的问题仍在继续。
我的用户在不同的群组中,每个群组都有不同的用户信息。我正在创建一个页面来使用Telerik RadGrid管理组中的用户。由于网格列的未知性质,我正在服务器上完全创建网格。你不能在aspx页面中定义一个网格,并在服务器的aspx.cs代码中添加列,各种各样的东西就像排序,过滤和获取额外的文本一样
我需要的功能是输出带有网格数据的excel文件。问题是,如何在服务器回调中引用网格。如果查看Telerik Grid Export to Excel,会有一个按钮回调,它会更改服务器上的网格值,并在ImageButton_Click中的网格控件上启动excel导出。在我的例子中,RadGrid1是在Page_Init的服务器中创建的,并添加到了asp:PlaceHolder。网格工作正常。
有没有办法在服务器aspx.cs代码中引用服务器添加的控件。放置控件ID将无法编译。
谢谢, 乔治
答案 0 :(得分:0)
我了解到添加的控件等同于使用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;
}