0

假设在 asp.net gridView 中有 8 列。col1, col2, col3, col4, col5, col6,....我希望他们这样安排:

-----------------------------
col_one | col_two | col_three
-----------------------------
col1     col4      col6  
col2     col5      col7
col3          

----------------------------- 

我怎么能那样做?

我在谷歌上搜索并找到了一篇文章它在一列内排列了几列,但没有将排列的列放在不同的行中。

我可以在这里发布什么代码......我只是在寻找方式......

如何做到这一点?

我应该切换到数据网格,为什么?

4

1 回答 1

0

如果需要,您应该使用TemplateField然后为特定模式设置模板,如下所示:

    <asp:GridView ID="GridView1" runat="server" DataKeyNames="Id" DataSourceID="ObjectDataSource1" AutoGenerateColumns="false">
        <Columns>
            <asp:TemplateField HeaderText="col_one">
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text='<%# Eval("col1") %>'></asp:Label><br />
                    <asp:Label ID="Label2" runat="server" Text='<%# Eval("col2") %>'></asp:Label><br />
                    <asp:Label ID="Label3" runat="server" Text='<%# Eval("col3") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="col_two">
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text='<%# Eval("col4") %>'></asp:Label><br />
                    <asp:Label ID="Label2" runat="server" Text='<%# Eval("col5") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="col_three">
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text='<%# Eval("col6") %>'></asp:Label><br />
                    <asp:Label ID="Label2" runat="server" Text='<%# Eval("col7") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
    <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetItems" TypeName="WebTester.DataGridTester">
    </asp:ObjectDataSource>

和页面代码:

    public static DataTable GetItems()
    { 
        //generate some demo data...
        DataTable dt = new DataTable();
        dt.Columns.Add("Id",typeof(int));
        dt.Columns.Add("col1", typeof(string));
        dt.Columns.Add("col2", typeof(string));
        dt.Columns.Add("col3", typeof(string));
        dt.Columns.Add("col4", typeof(string));
        dt.Columns.Add("col5", typeof(string));
        dt.Columns.Add("col6", typeof(string));
        dt.Columns.Add("col7", typeof(string));
        dt.Rows.Add(new object[] {1,"some","data","in","first","row", ".", ".." });
        dt.Rows.Add(new object[] { 2, "second", "record", "inside", "demo", "datatable", "-", "--" });
        return dt;
    }
于 2013-01-17T13:35:41.250 回答