求助如何在C#里面动态生成GridView控件数??并且绑定指定的数据源??非常感谢您的帮助
"数据库名称:学生管理数据表名称:考试成绩"学号年度名称培训班名称语文数学物理化学英语地理哲学法律100012011培训班198979967100012011培训班254...
"数据库名称:学生管理
数据表名称:考试成绩"
学号 年度名称 培训班名称 语文 数学 物理 化学 英语 地理 哲学 法律
10001 2011 培训班1 98 97 99 67
10001 2011 培训班2 54 87 65 56
10001 2011 培训班3 76 76 76 56 58
10001 2011 培训班4 76 56 98 78 67
10001 2011 培训班5 76 89 76 56
10001 2012 技能班1 54 34 12 33 34 65
10001 2012 技能班2 43 34 56 67 76
10001 2012 技能班3 34 54 23 87 90 78 67
10001 2012 技能班4 87 87 87 87 87 87
10001 2012 技能班5 67 67 76 67 67
"想法:将考试成绩数据表内的数据绑定GridView,要求如下:
1,每一行的数据动态绑定一个GridView,
2,成绩为空白的那列不用显示,比如说第一行,没有英语,地理,哲学,法律,所以绑定的这个GridView控件只要显示语文,数学,物理,化学就可以了,而第二列就显示数据,物理,化学,哲学的成绩
"
年度名称 培训班名称 语文 数学 物理 化学
2011 培训班1 98 97 99 67
年度名称 培训班名称 数学 物理 化学 哲学
2011 培训班2 54 87 65 56
"3,该表行数不确定,所以生成GridView控件的数量也是动态的,我的思路是:
(1)建立一个""Int a=int32.Parse(select count(*) from 考试成绩 where 学号='10001')""
(2)GridView的数量就等于变量a" 展开
数据表名称:考试成绩"
学号 年度名称 培训班名称 语文 数学 物理 化学 英语 地理 哲学 法律
10001 2011 培训班1 98 97 99 67
10001 2011 培训班2 54 87 65 56
10001 2011 培训班3 76 76 76 56 58
10001 2011 培训班4 76 56 98 78 67
10001 2011 培训班5 76 89 76 56
10001 2012 技能班1 54 34 12 33 34 65
10001 2012 技能班2 43 34 56 67 76
10001 2012 技能班3 34 54 23 87 90 78 67
10001 2012 技能班4 87 87 87 87 87 87
10001 2012 技能班5 67 67 76 67 67
"想法:将考试成绩数据表内的数据绑定GridView,要求如下:
1,每一行的数据动态绑定一个GridView,
2,成绩为空白的那列不用显示,比如说第一行,没有英语,地理,哲学,法律,所以绑定的这个GridView控件只要显示语文,数学,物理,化学就可以了,而第二列就显示数据,物理,化学,哲学的成绩
"
年度名称 培训班名称 语文 数学 物理 化学
2011 培训班1 98 97 99 67
年度名称 培训班名称 数学 物理 化学 哲学
2011 培训班2 54 87 65 56
"3,该表行数不确定,所以生成GridView控件的数量也是动态的,我的思路是:
(1)建立一个""Int a=int32.Parse(select count(*) from 考试成绩 where 学号='10001')""
(2)GridView的数量就等于变量a" 展开
3个回答
展开全部
这个用数据绑定就可以了,数据如果是从DB中检索出来的,那么用SQL检索出全部的列,这样不存在的就会使空了。然后把检索结果绑定到GridView上就行了,行数有SQL检索结果的条数决定。
你需要在APSX文件里声明各列,并指定每列对应SQL检索结果的列名。绑定可以写在aspx里,并指定检索更新删除新建等事件对应的方法和参数。也可以写在cs代码里使用DataSouce指定数据源,在调用DataBind方法施行绑定。
不管用哪种方法,都不需要关有多少行,多少控件。
你需要在APSX文件里声明各列,并指定每列对应SQL检索结果的列名。绑定可以写在aspx里,并指定检索更新删除新建等事件对应的方法和参数。也可以写在cs代码里使用DataSouce指定数据源,在调用DataBind方法施行绑定。
不管用哪种方法,都不需要关有多少行,多少控件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
试了下自动生成,代码是运行了,但是不显示.... 就算显示了,如何在databind函数中判断gridview的那些列是空白的... 你这样的要求比较纠结。
GridView xx = new GridView();
string sql = "select * from Tstestscore where id=2";
xx.DataSource = Class1.dataset(sql);
xx.DataBind();
我以前搞过一个类似的笨办法,页面上放了100+的label,然后用控件数组控制显示,但是吃亏不讨好的事,如果你这个只有五个班那就还好了,或者把每个班的表做成一样长,前面一段是整合的数据后面一段就让他空着,再把所有的融合在一个dataset 再绑定一个gridview。不知道行不行.
DataSet ds = Class1.dataset(sqr);
DataSet da = Class1.dataset(sqr1);
ds.Merge(da); // merge 是关键 同样可合并datatable datarow
GridView2.DataSource = ds.Tables["table"];
GridView2.DataBind();
这只是我的一个想法啦
GridView xx = new GridView();
string sql = "select * from Tstestscore where id=2";
xx.DataSource = Class1.dataset(sql);
xx.DataBind();
我以前搞过一个类似的笨办法,页面上放了100+的label,然后用控件数组控制显示,但是吃亏不讨好的事,如果你这个只有五个班那就还好了,或者把每个班的表做成一样长,前面一段是整合的数据后面一段就让他空着,再把所有的融合在一个dataset 再绑定一个gridview。不知道行不行.
DataSet ds = Class1.dataset(sqr);
DataSet da = Class1.dataset(sqr1);
ds.Merge(da); // merge 是关键 同样可合并datatable datarow
GridView2.DataSource = ds.Tables["table"];
GridView2.DataBind();
这只是我的一个想法啦
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有这样的做法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询