c# - 如何在不知道任何字段的情况下填充 gridView
问题描述
我有这个查询select distinct b.Name Project, a.Name Field from viewBatchClassIndexFields a inner join BatchDef b on a.DocumentBatchDefID = b.BatchDefID where b.Name = @projecto order by 1
这样做是,获取 projectName 并返回所需的 indexFields,但问题是几乎每个 projectName 作为不同的索引字段作为返回,我的问题是。在事先不知道我将拥有哪些字段的情况下,我如何填充 gridView。
解决方案
没有什么可以阻止您让 gridview 自动为您生成列。事实上,如果你什么都不做,那是默认的!!!
因此,我假设您使用了项目-> 设置,并设置了与数据库的有效连接。好的,现在我们将一个gridview放到网页上,像这样说:
<asp:GridView ID="GridView1" runat="server"></asp:GridView>
好的,现在,这是我们填充网格视图的代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
LoadGrid();
}
void LoadGrid()
{
// load up our grid
using (SqlCommand cmdSQL = new SqlCommand("SELECT TOP 10 * from tblHotels ORDER BY HotelName ",
new SqlConnection(Properties.Settings.Default.TEST4)))
{
cmdSQL.Connection.Open();
GridView1.DataSource = cmdSQL.ExecuteReader();
GridView1.DataBind();
}
}
所以,我没有在哪里指定任何列名。
输出:
因此,您可以在上面推送/使用/进行任何您想要的查询 - 网格将使用数据源中的列名。因此,您可以为该数据源使用任何数据源(任何 sql 查询 - 甚至是带有连接的查询)。
您当然也可以将查询结果加载到数据表中,然后当然循环列名,并将它们添加到gridview的列中,但是如果您不设置 AutoGeneraateColumns = false (那么网格将自动生成列为你)。
推荐阅读
- vb.net - 将页面设置属性设置到 ReportViewer
- javascript - 无法在 JavaScript 中检索 JSON 数据实体的长度
- python - Flask-RESTful 和 Kivy
- ios - Swift - 使用 UIImage 动画呈现/关闭 ViewController
- javascript - 功能组件中的 ContentEditable - 列表项
- node.js - 快速验证检查对象是否有嵌套键
- cassandra - Cassandra 3.11.1 地理空间支持
- android - 清单合并在运行时失败
- windows - 如何使用从 txt 文件中读取的变量使用批处理输出文本块?
- python - 在 html 表格中显示 django 模型的一部分