Почему количество столбцов равно 0 для GridView - PullRequest
0 голосов
/ 22 марта 2012

Друзья, я заполняю GridView в своем приложении asp.net, используя следующий код.

    GridView grdExport = new GridView();
    DataSet dsRecord = objHelper.gReturnDataSet(CommandType.Text, strSql);

    grdExport.DataSource = dsRecord.Tables[0];
    grdExport.DataBind();

Теперь проблема в немедленном окне, когда я проверяю, я получаю следующий результат:

    ?dsRecord.Tables[0].Columns.Count
    16
    ?dsRecord.Tables[0].Rows.Count
    37
    ?grdExport.Rows.Count
    37
    ?grdExport.Columns.Count
    0

Пожалуйста, кто-нибудь может сказать мне, почему для grdExport количество столбцов равно 0?

Ответы [ 5 ]

1 голос
/ 22 марта 2012

Может быть, это потому, что вы не разместили gridView на странице? как это: PlaceHolder1.Controls.Add (grdExport)

1 голос
/ 22 марта 2012

Свойство GridView.Columns

Проверьте это:

Свойство Columns (коллекция) используется для хранения всех явно объявленные поля столбцов, которые отображаются в элементе управления GridView. Вы также можно использовать коллекцию Columns для программного управления коллекция полей столбцов.

Если к добавленным столбцам в вашей сетке добавлено больше столбцов, будет показано количество добавленных столбцов, а не автоматически созданных столбцов.

Если вы показываете автоматически сгенерированные столбцы, то он покажет 0. Проверьте эту разметку:

 <asp:GridView ID="GridView1" runat="server">
            <Columns>
                <asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" />
            </Columns>
        </asp:GridView>

Теперь он покажет ваш результат подсчета столбцов в 1:
// Перед добавлением столбца в gridview

?dtResult.Rows.Count
9
?dtResult.Columns.Count
2
?GridView1.Rows.Count
9
?GridView1.Columns.Count
0

После добавления столбца в gridview.

?GridView1.Columns.Count
1
1 голос
/ 22 марта 2012

Показывает counts = 0, потому что по умолчанию автоматически сгенерированные столбцы имеют значение true. Если вы добавляете столбцы вручную, тогда будет отображаться количество столбцов.Если вы напишите grdExport.AutoGenerateColumns = false;тогда на странице не будет отображено ни одного столбца.

0 голосов
/ 22 марта 2012

Ваш столбец GridViewColumn будет установлен после привязки ваших данных. Так что просто покажите MessageBox.Show, чтобы найти количество столбцов.

grdExport.AutoGenerateColumns = false;
MessageBox.Show(grdExport.Columns.Count.ToString());
0 голосов
/ 22 марта 2012

Вместо? GrdExport.Columns.Count. Это количество вы получите, когда добавляете коллекцию столбцов в gridview во время разработки. Вы должны использовать grdExport.Rows [0] .Cells.Count

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...