怎样动态显示datagridview的列。
各位前辈请教一个问题:
我想做一个录入学生成绩的系统。成绩表是这样的。表名:score 列名为:courseid(课程id),studentid(学号),examscore(考试成绩),lessontype(课程类型,必修选修,考察),semester(学期),classid(班级编号)。 我想做一个输入成绩的表,大概表示这样构成的。第一列是学号,2是学生名称,(前面这两列的值都要从数据库中搜索出来,值都是其他界面自动添加进去的。) 从第三列开始生成动态的列,根据课程类型分先后,(这个列名是要从courseid中筛选出符合本班的课程然后生成列。) 最后这个表是要实现先score表写入成绩数据。 主要内容就是这个。现在小弟主要是没有想法。望各位前辈不吝赐教。
[解决办法]
- C# code
//生成TemplateField aa = new TemplateField();Label l1=new Label();l1.Text="dd"; aa.ItemTemplate.InstantiateIn(l1)将aa增加给GridViewthis.GridView1.Columns.Add(aa)
[解决办法]
- C# code
--下面是转的 /**//// <summary> /// 绑定生成GridView /// </summary> /// <param name="gdv">要绑定的GridView</param> /// <param name="dtblDataSource">GridView的数据源</param> /// <param name="strDataKey">GridView的DataKeyNames</param> public static void GridViewBind(GridView gdv, DataTable dtblDataSource, string strDataKey) ...{ gdv.Columns.Clear(); gdv.AutoGenerateColumns = false; gdv.DataSource = dtblDataSource; gdv.DataKeyNames = new string[] ...{ strDataKey }; for (int i = 0; i < dtblDataSource.Columns.Count; i++) //绑定普通数据列 ...{ BoundField bfColumn = new BoundField(); bfColumn.DataField = dtblDataSource.Columns[i].ColumnName; bfColumn.HeaderText = dtblDataSource.Columns[i].Caption; gdv.Columns.Add(bfColumn); } gdv.Columns[1].Visible = false; CommandField cfModify = new CommandField(); //绑定命令列 cfModify.ButtonType = ButtonType.Button; cfModify.SelectText = "修改"; cfModify.ShowSelectButton = true; gdv.Columns.Add(cfModify); gdv.DataBind(); }
[解决办法]