Загрузка данных из DataTable в SPGridview C#
Я делаю несколько веб-частей для себя и хочу заполнить SPGridview некоторыми данными.
DataTable table = /*some data*/;
SPGridview grid = new SPGridview();
// setting up SPGridview properties
grid.DataSource = table;
grid.DataBind();
Когда я сделал это с GirdView, он работал просто отлично. Но когда я попытался сделать это с SPGridview, моя веб-часть показала только пустую страницу. Я полагаю, что SPGridview нужно немного больше с моей стороны, и если бы вы могли дать мне совет, как это сделать.
2 ответа
Решение
По какой-то причине Microsoft отключила свойство AutoGenerateColumns, и я не знаю, как обойти без использования цикла. Вот рабочий код:
SPGridView _gridview = new SPGridView();
DataTable table = /*some data*/;
_gridview.Enabled = true;
_gridview.AutoGenerateColumns = false;
_gridview.Visible = true;
foreach(DataColumn col in table.Columns)
{
SPBoundField field = new SPBoundField();
field.DataField = col.ColumnName;
_gridview.Columns.Add(field);
}
_gridview.DataSource = table;
_gridview.DataBind();
this.Controls.Add(_gridview);
SPGridView myGridView = new SPGridView();
myGridView.Enabled = true;
myGridView.DataSource = table;
myGridView.DataBind();
this.Controls.Add(myGridView);
Попробуйте этот код............