2

我有一个非常简单的场景,但在这方面的糟糕经验和谷歌搜索并没有多大帮助。

考虑一个带有 C# 代码的经典 ASPX 页面。假设我有一个DataTables 列表(或DataSet带有几个表的 a )。我需要一种方法来显示所有表格,DataGrid每个表格使用一个。

我尝试将整个绑定DataSetDataGrid但它只显示第一个表。

有些东西告诉我我应该使用 a RepeaterDataGrid但我需要帮助或者完全不同的(更好的)替代方案。

4

3 回答 3

4

这是一个使用动态控件的示例:

ASPX

    <asp:Panel runat="server" ID="myPanel" Width="100%">
    </asp:Panel>
    <asp:Label ID="lblMessage" runat="server" />
    <asp:Button Text="Just post" runat="server" />

背后的代码

    protected void Page_Init(object sender, EventArgs e)
    {
        var s1 = Builder<Product>.CreateListOfSize(5).Build();
        var s2 = Builder<Order>.CreateListOfSize(9).Build();

        var g1 = new DataGrid { Width = new Unit("50%"), DataSource = s1 };
        var g2 = new DataGrid { Width = new Unit("50%"), DataSource = s2 };

        this.myPanel.Controls.Add(g1);
        this.myPanel.Controls.Add(g2);
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        this.DataBind();
    }

输出:

请注意,每个网格的视图状态都保存在 post backs 中

在此处输入图像描述

于 2012-06-25T18:24:32.723 回答
1

看看这个链接:

http://msdn.microsoft.com/en-us/library/system.data.dataset.tables.aspx

如果您使用的是数据集,则可以执行以下操作:

MyGrid.DataSource = dataset.Tables[0]
MyGrid2.DataSource = dataset.Tables[1]

然后对网格中的每个表索引重复,例如 1、2、3

于 2012-06-25T18:24:19.310 回答
1

我不知道您想在所有表格中显示什么,即使您将显示所有表格,您将如何管理每个表格记录的标题。我觉得你需要先想想你想要什么?

如果每个表的列数相同,那么它很容易维护,你知道如何使用联合吗?

select x, y,z from table1
union 
select x, y,z from table2
union 
select x, y,z from table3
union 
select x, y,z from table4

它只会从所有四个表中创建一个表结果,并且可以轻松绑定。

我不知道你是否需要这个,但无论如何我都试图帮助你:)

于 2012-06-25T18:34:49.463 回答