J'utilise VS2015 et C#.Affectation de DataSourceObject en tant que source de données à Gridies créées dynamiquement
Dans mon application web, je crée quelques GridViews dynamiquement. Nombre de GridView créés lors de l'exécution dépend des données (peut donc être 1 ou 2 ou non).
Donc c'est en boucle. Je veux assigner DataSourceObject
en tant que source de données pour chaque GridView comme:
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;
}
Ma méthode GetTable
qui retourne DataTable en tant que source de données pour chaque grille:
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;
}
Pour moi sa ne fonctionne pas correctement. GetTable
qui s'exécute après la fin de la première boucle, c'est-à-dire après avoir créé toutes les grilles. Donc, quand il exécute finalement la méthode Myrow
est nulle et il donne une exception nulle.
Comment faire bouger les choses il assignera correctement comme:
grid1.datasource = data1, grid2.datasource = data2 .... etc