2011-02-28 48 views

回答

2

你可以将代码添加到您的网格的RowDataBound事件:

protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     GridViewRow row = new GridViewRow(e.Row.RowIndex, 0, DataControlRowType.Header, DataControlRowState.Normal); 

     TableCell cell = new TableCell(); 
     cell.Controls.Add(new Label { Text = "Header" }); //as needed 

     row.Cells.Add(cell); 

     Table tbl = (e.Row.Parent as Table); 

     tbl.Controls.AddAt(e.Row.RowIndex * 2 + 1, row);    
    } 
} 

在这个例子中,我已经完全删除了GridView的标题为你写你自己的代码后面。

+0

谢谢兄弟!!!! – Nitin 2011-03-01 05:43:28

+0

嗨,Jan-Frederik Carl这是很好的代码,但是如果我想为每10行显示头文件,那我该如何编写代码。 – 2011-12-09 09:29:49

+0

在该方法中,您应该检查RowIndex属性,如果它可以被10除尽而不休息。在这种情况下,在行后添加标题。现在没有时间将代码放在一起,但如果仍然需要,可以稍后再做。 – AGuyCalledGerald 2011-12-09 09:49:18

1

不能不重写控件渲染方法。如何使用中继器并将其放入项目分隔符元素中?

+0

可以请你告诉我如何在渲染方法中做到这一点 – Nitin 2011-02-28 10:23:28

+0

它可能是最好的描述你的情况,因为重写渲染是没有其他选项的方法,通常是非常复杂的。 – Hawxby 2011-02-28 13:37:00

0

那么,将标题的标记也放在项目模板中比较容易。重写Render方法可能会有点矫枉过正。

但是,如果有理由这样做,它至少从你的问题中缺失。

0

如果您需要每个项目行中的标题行标记,为什么不只是将标题中的标记包含到ItemTemplate中?