2013-04-02 2 views
0

Мой GridView похож на это:Добавление строки заголовка к Gridview

12- CategoryA - other columns 
13- CategoryA - other columns 
14- CategoryA - other columns 
15- CategoryA - other columns 

16- CategoryB - other columns 
17- CategoryB - other columns 
18- CategoryB - other columns 

То, что я хочу, это smthing так:

CategoryA (colspan 2) 
12 - other columns 
13 - other columns 
14 - other columns 
15 - other columns 
Category B (colspan 2) 
16 - other columns 
17 - other columns 
18 - other columns 

Могу ли я сделать это путем модификации DataTable, который Я привязываюсь к источнику данных? Или есть более простой способ?

+0

Является ли ваш 'gridview' в' ListView'? –

+0

@HosseinNarimaniRad Извините, что я не понял? – HOY

+0

Можете ли вы разместить часть своего XAML? –

ответ

2

Я считаю RowDataBound Событие - это то, что вам нужно. Вы можете следить за тем, что было показано предыдущей категорией, и какой категории будет отображаться.

class MyClass 
{ 
    private string CurrentCategory{ get; set; } 

    // Load_Page with databinding the GridView{ } 

    protected void mygridview_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if(e.Row.RowType == DataControlRowType.DataRow && 
      (e.Row.DataItem as DataRowView)["mycolumn"].ToString() != CurrentCategory)) 
     { 
      GridViewRow tr = new GridViewRow(e.Row.RowIndex +1, e.Row.RowIndex + 1, 
            DataControlRowType.DataRow, e.Row.RowState); 
      TableCell newTableCell = new TableCell(); 
      newTableCell.Text = (e.Row.DataItem as DataRowView)["mycolumn"].ToString(); 
      CurrentCategory = (e.Row.DataItem as DataRowView)["mycolumn"].ToString(); 
      tr.Cells.Add(newTableCell); 

      ((Table)e.Row.Parent).Rows.Add(tr); 
     } 
    } 
} 

Код предоставляется как есть, так и не проверен.

+0

кажется, что он работает с небольшой модификацией, он добавляет заголовки, но под строками. Можете ли вы изменить его, пожалуйста? Я не знаю, как работают параметры gridviewrow. – HOY

+0

Чудеса интернетов: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridviewrow.gridviewrow.aspx –

+0

Что вам нужно для изменения является RowIndex: вместо e.Row.RowIndex + 1 оставьте «+1», –

0

Элемент управления GridView не поддерживает группировку.

+0

Я не пытаюсь группировать его автоматически, я пытаюсь сгруппировать его вручную. – HOY

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