【发布时间】:2018-02-13 06:45:58
【问题描述】:
我正在使用 VS2015 和 C#。
在我的网络应用程序中,我动态创建了几个 GridView。在运行时创建的 GridView 的数量取决于数据(因此可以是 1 或 2 或任何否)。
所以它在循环中。我想将DataSourceObject 作为数据源分配给每个 GridView,例如:
i=1;
DataRow Myrow;
foreach (DataRow row in dtSection.Rows)
{
Myrow = row;
GridView grid = new GridView();
grid.id = "grid" + i;
grid.datasource = "data" + i;
ObjectDataSource dataSource = new ObjectDataSource();
dataSource.ID = "data" + i;
dataSource.SelectMethod = "GetTable";
dataSource.TypeName = "MyNameSpace.MyClass";
i = i + 1;
}
我的 GetTable 方法返回 DataTable 作为每个网格的数据源:
public DataTable GetTable()
{
DataTable dtpage = new DataTable();
dtpage = ReportDataTable.Clone(); // My another data table from which I am selecting few rows
DataRow[] rowArray = ReportDataTable.Select("title = '" + Myrow[0].ToString() + "'");
foreach (DataRow row1 in rowArray)
{
dtpage.ImportRow(row1);
}
return dtpage;
}
对我来说,它无法正常工作。 GetTable 方法在第一个循环完成后执行,即在创建所有网格之后。所以当它最终执行方法时Myrow为null,它给出了null异常。
如何做到这一点,以便正确分配:
grid1.datasource = data1, grid2.datasource = data2 .... etc
【问题讨论】: