【发布时间】:2015-08-04 20:46:22
【问题描述】:
所以我有一个 SQL 数据库,里面有很多表。我试图在一个简单的 asp.net 站点上的 Datagrid 中显示表格。每个表都有自己的数据网格。我遇到的问题是,根据用户选择的选项,我的数据集将从 3-7 个表中返回。因此,所有表都未命名,例如:
DataSet dataSet = new DataSet();
SqlDataAdapter dataAdpt = new SqlDataAdapter();
...
dataAdpt.SelectCommand = m_cmd;
dataAdpt.Fill(dataSet);
然后我将其返回给将创建数据网格的方法。这是我所拥有的:
private void createDataGrid(DataSet dataSet)
{
foreach (DataTable table in dataSet.Tables)
{
DataGrid grid = new DataGrid();
grid.DataSource = new DataView(table);
grid.DataBind();
}
}
但因为网格没有在我的 Default.aspx 中定义,所以它没有显示任何内容。我是 asp.net 的新手,因此非常欢迎提出如何更好地完成此任务的建议。但总的来说,有没有一种方法可以动态地将表格“添加”到页面中?
【问题讨论】:
-
有一个
Repeater,里面有一堆数据网格。将数据表集合绑定到转发器,并让转发器将每个数据表绑定到数据网格。 -
您当然应该使用@Servy 提到的方法。这是到目前为止在这种情况下的最佳实践。
-
我同意它更优雅,但如果 OP 是初学者并且他只是想看到结果,那么工作量要大得多。
-
@Cortright 导致他不知道如何解决的问题的可能性大大降低。给他一些看似可行的东西,但这会导致他没有能力解决的各种问题,这是不负责任的。他应该花时间学习如何正确解决问题,而不是先被一堆糟糕的做法烧毁,然后再去学习。
-
好吧,让我们在这里为他声明一个免责声明。 OP,如果您想在将数据网格放在页面上之后对它们进行任何操作,那么使用中继器方法会更好。但是,如果您只想显示数据,仅此而已 - 占位符方法很好。