跨数据网格中的列

时间:2009-09-15 03:15:30

标签: asp.net datagrid

我有一个datagrid,其中一些文本需要跨越多列。这是我需要的一个例子。

行#图像名称价格日期

1 xxx我的名字$ 99 1/1/2009           XXX           xxx长描述在这里

2 xxx name 2 $ 99 1/1/2009           XXX
          xxx另一个长描述

使用数据网格在Asp.Net中是否可以这样?有关如何做到这一点的任何建议吗?

2 个答案:

答案 0 :(得分:1)

您可能会发现使用ASP.Net Repeater更容易,每个DataItem有多行。这样,您就可以完全控制布局。

技术上可以使用ASP.Net GridView来实现,但我怀疑这不是最优雅的解决方案。 GridView(和Datagrid)是开箱即用的,每个DataItem一行。

以下是一些示例ASP.Net,其中包含一个Repeater,它说明了一种可能适合您的方法:

        <asp:Repeater ID="Repeater1" runat="server">
        <HeaderTemplate>
            <table>
        </HeaderTemplate>
        <tr>
            <th>
                Col 1
            </th>
            <th>
                Col 2
            </th>
            <th>
                Col 3
            </th>
        </tr>
        <ItemTemplate>
            <tr>
                <td>
                    <%# Eval("Field1") %>
                </td>
                <td>
                    <%# Eval("Field2") %>
                </td>
                <td>
                    <%# Eval("Field3") %>
                </td>
            </tr>
            <tr>
                <td>
                    <%# Eval("Field4") %>
                </td>
                <td colspan="2">
                    <%# Eval("Field5") %>
                </td>
            </tr>
        </ItemTemplate>
        <FooterTemplate>
            </table>
        </FooterTemplate>
    </asp:Repeater>

请注意,ItemTemplate包含两个HTML表行,第二个包含一个colspan为2的td。

希望有所帮助。

答案 1 :(得分:1)

你必须使用DataGrid吗?我建议使用ListView控件。它具有您需要的所有功能,并使用模板进行完整的UI控制。