0

asp.netgridViewに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 に答える