我已经尝试将标题列从2合并为1,但是示例和我已经尝试了类似
GridView.Controls[0].Controls.AddAt(0, oGridViewRow);
这样的问题和浮动的示例只是添加1列,并将其添加到旧列的顶部,而不是合并它。所以我想实际合并1列,列的其余部分仍然是相同的。这是我要合并的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>
答案 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设计更改单元格索引。