2013-02-27 58 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); 

}