none
怎样在asp.net页面上动态生成gridview并绑定数据源 RRS feed

  • 问题

  • 现在我在数据库中有一张表A,表A记录了不同的表B与表C的表名与字段。表B与C中存储的是不同的数据内容。
    现在我想在页面上先只有一个下拉菜单(绑定从表A中查出来的不同的表名B与C),下拉菜单选择不同的表名(B或C)则在页面上动态生成gridview,此gridview绑定从(B或C)中查询出来的数据,怎样实现呢?
    请求各位高手帮忙,谢谢。
    2009年7月10日 12:13

答案

  • 你好,
    如果你要在响应DropDownList的changed事件时产生可编辑的gridview,恐怕动态添加GridView不好实现了。因为动态添加的GridView每次回发后就消失了。
    所以要么不要动态生成GridView,只是更改其数据源;要么就彻底更改一下实现方式,如点击每一行的时候响应JavaScript弹出一个页面进行值的修改,修改完后再返回。
    Microsoft Online Community Support
    • 已标记为答案 newshine 2009年7月13日 12:34
    2009年7月13日 2:54

全部回复

  • hi,
      提个参考思路,个人理解应该有2中实现方式;
    1.使用asp.net 的gridview控件,
    2.使用html标签,动态生成table,等放到页面的placeholder里。
       两种方法的思路:
    1.用户选择表表名的时候,回传服务器,根据选择的表明查询数据,放到一个DataSet里,然后New 一个asp.net 的gridview控件的对象,然后设置datasource.绑定数据。这个空间其实可以放置到页面的一个控件里,比如placeholder.
    2.方法2的话,直接在服务端生成HTML代码,你可以再这里定义页面显示数据table的样式。查询出的数据就是一个循环遍历,生成tr标签,每个数据放到td里,就可以了。
       基本过程都是在服务端处理。
       差别是前者利用asp.net的控件,后者直接生成要显示的数据html结果。


    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://frank_xl.cnblogs.com
    2009年7月10日 13:20
    版主
  • 这个比较简单,将 表 A 的数据读取出来绑定到 DropDownList 中,设置 DropDownList.AutoPostBack = true, 添加 DropdownList 的 SelectedIndexChanged 事件,在事件中根据选中项,动态构造 SQL 或使用存储过程将数据读取出来并绑定到 GridView 中, GridView 默认是自动生成列的,无需过多的设置
    知识改变命运,奋斗成就人生!
    2009年7月10日 13:31
    版主
  • 谢谢,能不能给个页面的例子呢?
    2009年7月11日 6:46
  • GridView g = new GridView(); g.DataSource = xx;g.DataBind();this.form1.Controls.Add(g);
    【孟子E章】
    2009年7月12日 0:20
    版主
  • 谢谢孟老师,上面忘了讲了,在这个生成的gridview 里,需要有编辑按钮,能够编辑和删除从数据库中查出的数据,请问能讲讲怎么做么?
    谢谢


    现在我在数据库中有一张表A,表A记录了不同的表B与表C的表名与字段。表B与C中存储的是不同的数据内容。
    现在我想在页面上先只有一个下拉菜单(绑定从表A中查出来的不同的表名B与C),下拉菜单选择不同的表名(B或C)则在页面上动态生成gridview,此gridview绑定从(B或C)中查询出来的数据,并且能够编辑和删除,怎样实现呢?
    请求各位高手帮忙,谢谢。
    2009年7月12日 11:23
  • 你好,
    如果你要在响应DropDownList的changed事件时产生可编辑的gridview,恐怕动态添加GridView不好实现了。因为动态添加的GridView每次回发后就消失了。
    所以要么不要动态生成GridView,只是更改其数据源;要么就彻底更改一下实现方式,如点击每一行的时候响应JavaScript弹出一个页面进行值的修改,修改完后再返回。
    Microsoft Online Community Support
    • 已标记为答案 newshine 2009年7月13日 12:34
    2009年7月13日 2:54
  • 不用动态添加GRIDVIEW。动态添加GRIDVIEW的列就行!
    2009年7月16日 14:31