2009-05-26 3 views
2

У меня есть DataView, который уже был заполнен данными (проверено, что это правда).GridView отсутствует столбец даже после DataBind()

Затем я установил DataSource своего GridView в этот DataView и назвал функцию .DataBind().

Сразу после привязки я проверил количество столбцов моего GridView (grid.Columns.Count), и он показывает 0. Но он показывает правильный вывод с 15 столбцами.

Кроме того, обращение к столбцу с использованием его индекса приведет к исключению.

Как я могу получить доступ к столбцу?

Спасибо!

EDIT - Дополнительная информация:

я на самом деле нужно добавить (ВВЕРХ/ВНИЗ) «глифов» в заголовке столбца, чтобы показать, что колонна сортируется и его направление. Ниже приведен код, который я использую. Проблема в том, что столбец. Столбец всегда равен нулю.

for (int i = 0; i < dgData.Columns.Count; i++) 
    { 
     string colExpr = dgData.Columns[i].SortExpression; 
     if (colExpr != "" && colExpr == dgData.SortExpression) 
      item.Cells[i].Controls.Add(glyph); 
    } 

ответ

2

Редактировать

Попробуйте, это немного Fugly, как это полагается на проверку текста LinkButton против GridView SortExpression. Gridview ИД «тест»

protected void test_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.Header) 
     { 
      foreach (TableCell tc in e.Row.Cells) 
      { 
       if(test.SortExpression.Contains((tc.Controls[0] as LinkButton).Text)) 
        tc.Controls.Add(glyph) 
      } 
     } 
    } 

Я не думаю, что коллекция столбцов устанавливается, если вы автоматически генерировать столбцы ...

Вы можете проверить Row.Cells.Count или если требуется имена столбцов, захватите HeaderRow и проведите по ячейкам &, возьмите их .Text Value.

Если GridView сортируемое (например, имеет интерактивные ссылки в заголовке, а затем, чтобы получить имена столбцов, которые вы должны будете проверить

foreach(Row r in GridView.Rows) 
{ 
    if(r.RowType == HeaderRow) 
    { 
     r.Cells[0].Controls[0]; //Link Control is here. 
    } 
} 
+0

Привет, пожалуйста, см моего выбора по этому вопросу. Я на самом деле нужен Свойство SortExpression из столбца. – Ian

+0

Здравствуйте, Что мне нужно добавить в .Contains()? – Ian

Смежные вопросы