1

好的,所以我的目标是在 gridview 标题下仅添加 1 个静态行示例:

|coloumnHeader1|coloumnHeader2|coloumnHeader3|coloumnHeader4|

|---------------------静态行------------- --| |DataBoundField|DataBoundField|DataBoundField|DataBoundField| |DataBoundField|DataBoundField|DataBoundField|DataBoundField| |DataBoundField|DataBoundField|DataBoundField|DataBoundField| |DataBoundField|DataBoundField|DataBoundField|DataBoundField| |DataBoundField|DataBoundField|DataBoundField|DataBoundField| |DataBoundField|DataBoundField|DataBoundField|DataBoundField|

|---------------------页脚-------------- -----|

我的预感是它对 RowDataBound 有所帮助,但就我所知。

我想我需要更好地解释自己:我想做的是相当于添加一个新的 HeaderRow ...... thnx 为所有帮助者:D

找到答案:经过大量谷歌搜索后,我在 asp 上找到了我想要的东西

<asp:GridView OnPreRender="grd_Pre" CssClass="table" ID="GridView1" runat="server" AutoGenerateColumns="False" 
   >

在后面的代码中

 protected void grd_Pre(object sender, EventArgs e)
{
    GridViewRow gv = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal);
    TableCell tc = new TableCell();
    tc.ColumnSpan = 3;
    tc.Text = "GridView Header";
    tc.Attributes.Add("style", "text-align:center");
    gv.Cells.Add(tc);
    this.GridView1.Controls[0].Controls.AddAt(0, gv);
}
4

2 回答 2

2

找到答案:经过大量谷歌搜索后,我在 asp 上找到了我想要的东西

<asp:GridView OnPreRender="grd_Pre" CssClass="table" ID="GridView1" runat="server" AutoGenerateColumns="False" 
   >

在后面的代码中

 protected void grd_Pre(object sender, EventArgs e)
{
    GridViewRow gv = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal);
    TableCell tc = new TableCell();
    tc.ColumnSpan = 3;
    tc.Text = "GridView Header";
    tc.Attributes.Add("style", "text-align:center");
    gv.Cells.Add(tc);
    this.GridView1.Controls[0].Controls.AddAt(0, gv);
}
于 2012-12-17T15:31:38.713 回答
0

正如您所提到的,您可能可以在 RowDataBound 事件期间插入一行,但这会很混乱。

根据绑定到网格的数据结构,您可以将静态行插入数据结构。我什至有一些实现,其中查询被修改以返回静态行,所以你最终会得到类似的东西:

select field1, ... , fieldN from table
union
select 'static 1', ...

相反,您可以将静态行添加为标题模板的一部分吗?

如果不查看更多代码,很难正确回答这个问题。

于 2012-05-01T15:53:11.923 回答