Загрузка данных из 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);

Попробуйте этот код............

Другие вопросы по тегам