在gridview中合并列标题

时间:2014-12-02 08:19:18

标签: c# asp.net gridview

我已经尝试将标题列从2合并为1,但是示例和我已经尝试了类似 GridView.Controls[0].Controls.AddAt(0, oGridViewRow);这样的问题和浮动的示例只是添加1列,并将其添加到旧列的顶部,而不是合并它。所以我想实际合并1列,列的其余部分仍然是相同的。这是我要合并的gridview列的图片:

GridView

我想合并"行动"列标题从2到1.因此在操作列下方,将有一个编辑和删除。

哦,我差点忘了,这是处理动作栏的gridview代码:

<asp:CommandField ShowEditButton="true" HeaderText="Action"/>

        <asp:TemplateField>
            <ItemTemplate>
                <asp:LinkButton ID="linkDelete" runat="server"
                    CommandArgument = '<%# Eval("XXX")%>'
                    OnClientClick = "return confirm('Do you want to delete?')"
                    Text = "Delete" OnClick = "DeleteDetail"></asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>

2 个答案:

答案 0 :(得分:2)

您可以使用模板自定义列标题和数据的外观 以下是一个非常简化的示例,应该显示所需的结果 但是你需要以自己的方式处理编辑和删除动作

    <asp:GridView ID="GridView1" runat="server">            
        <Columns>
            <asp:TemplateField>
                <HeaderTemplate>
                    <div> Action </div>
                </HeaderTemplate>
                <ItemTemplate>
                    <a href="#">Edit</a> | <a href="#">Delete</a>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>

如您所见,我的想法是不合并两列的标题。相反,我将两列的数据放在单个标题下的单个列中。我认为它可以达到同样的效果。

答案 1 :(得分:2)

虽然我严格反对硬编码,但这就是我所拥有的,你可以在gridview的'RowDataBound'事件中写这个: -

if (e.Row.RowType == DataControlRowType.Header)
{
      e.Row.Cells[3].ColumnSpan = 2;
      e.Row.Cells[4].Visible = false;
      e.Row.Cells[3].Text = "Action";
}

在这里,您需要根据gridview设计更改单元格索引。