2013-02-27 2 views
0

Я добавляю строку заголовка таблицы динамически, как показано ниже. Это делается правильно. Итак, теперь у меня 2 заголовка.Прочитайте точные строки Gridview после добавления динамически добавленного заголовка?

protected void gvCustomers_RowDataBound(object sender, GridViewRowEventArgs e) 

{

if (e.Row.RowType == DataControlRowType.Header) 
{ 
    GridViewRow newHeaderRow = new GridViewRow(-1, -1, DataControlRowType.Header, DataControlRowState.Normal); 

    TableCell cell1 = new TableHeaderCell(); 
    cell1.ColumnSpan = 1; //e.Row.Cells.Count; 
    cell1.Text = "Expected"; 

    TableCell cell2 = new TableCell(); 
    cell2.ColumnSpan = 2; 
    cell2.Text = "One"; 

    TableCell cell3 = new TableCell(); 
    cell3.ColumnSpan = 2; 
    cell3.Text = "Two"; 

    TableCell cell4 = new TableCell(); 
    cell4.ColumnSpan = 2; 
    cell4.Text = "Three"; 

    newHeaderRow.Cells.Add(cell1); 
    newHeaderRow.Cells.Add(cell2); 
    newHeaderRow.Cells.Add(cell3); 
    newHeaderRow.Cells.Add(cell4); 

    ((GridView)sender).Controls[0].Controls.AddAt(0, newHeaderRow); 
} 

}

Если мой GridView оказывает 3 строки, и цикл через GridView он будет читать только 2 строки. Пропускает последний ряд.

Любые мысли

ответ

0

Я решил это. напишите этот код в событии RowCreated. Я написал этот код в RowDataBound, поэтому созданная строка заголовка не была согласованной.

protected void gvCustomers_RowCreated(object sender, GridViewRowEventArgs e) 

{

, если (e.Row.RowType == DataControlRowType.Header) { GridViewRow newHeaderRow = новый GridViewRow (-1, -1, DataControlRowType.Header, DataControlRowState.Normal);

TableCell cell1 = new TableHeaderCell(); 
cell1.ColumnSpan = 1; //e.Row.Cells.Count; 
cell1.Text = "Expected"; 

TableCell cell2 = new TableCell(); 
cell2.ColumnSpan = 2; 
cell2.Text = "One"; 

TableCell cell3 = new TableCell(); 
cell3.ColumnSpan = 2; 
cell3.Text = "Two"; 

TableCell cell4 = new TableCell(); 
cell4.ColumnSpan = 2; 
cell4.Text = "Three"; 

newHeaderRow.Cells.Add(cell1); 
newHeaderRow.Cells.Add(cell2); 
newHeaderRow.Cells.Add(cell3); 
newHeaderRow.Cells.Add(cell4); 

((GridView)sender).Controls[0].Controls.AddAt(0, newHeaderRow); 

}

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