现在要做一个页面,数据库类似与下面的设计:(并非原表,但是一定要这样设计)
数据库中的3个表1、课程表:id name
1 语文
2 数学
3 英语2、学生表:id name
1 张三
2 李四
3 小华3、报名表:id studentId courseId 是否报名
1 1 1 1
2 2 2 0
3
现在要把这种关系反映到界面,以便与报名
页面有个GridView.
根据逻辑关系,把数据库中的数据生成一张虚拟表:private DataTable GetTable()
{
DataSet ds = new DataSet();
ds = cs.GetStudentDataSet(); //得到所有的学生信息 DataTable myTable = new DataTable();
myTable.Columns.Add("学生姓名");
_entry = cs.GetEntryContent(0); //这个就把语文、数学 绑定到table的头(数据的多少是不固定的,例如:语、数、英、物……)
for (int i = 0; i < _entry.Count; i++)
{
myTable.Columns.Add(_entry[i].CourseName);
}
//添加表的内容
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
DataRow dr = myTable.NewRow();
dr["学生姓名"] = ds.Tables[0].Rows[i][TableInfo.CompanyInfo.Columns.CompanyName].ToString();
for (int j = 0; j < _entry.Count; j++)
{
dr[_entry[j].CourseName] = 0; //或是1 (即是否)
}
myTable.Rows.Add(dr);
}
}
return myTable;
}现在要把这个DataTable 绑定到GridView ,GridView 上面有checkbox
绑定好以后类似与:学生姓名 |语文 | 数学 | 英语 |物理 |
小华 |复选框1|复选框2 |复选框3|复选框4 |
张三 |复选框1|复选框2 |复选框3|复选框4 |
这个应该怎么实现???(主要是实现把DataTable绑定到GridView,并且GridView 里面要自动根据列的多少,有相应的CheckBox出现)
希望我已经表述清楚了。
数据库中的3个表1、课程表:id name
1 语文
2 数学
3 英语2、学生表:id name
1 张三
2 李四
3 小华3、报名表:id studentId courseId 是否报名
1 1 1 1
2 2 2 0
3
现在要把这种关系反映到界面,以便与报名
页面有个GridView.
根据逻辑关系,把数据库中的数据生成一张虚拟表:private DataTable GetTable()
{
DataSet ds = new DataSet();
ds = cs.GetStudentDataSet(); //得到所有的学生信息 DataTable myTable = new DataTable();
myTable.Columns.Add("学生姓名");
_entry = cs.GetEntryContent(0); //这个就把语文、数学 绑定到table的头(数据的多少是不固定的,例如:语、数、英、物……)
for (int i = 0; i < _entry.Count; i++)
{
myTable.Columns.Add(_entry[i].CourseName);
}
//添加表的内容
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
DataRow dr = myTable.NewRow();
dr["学生姓名"] = ds.Tables[0].Rows[i][TableInfo.CompanyInfo.Columns.CompanyName].ToString();
for (int j = 0; j < _entry.Count; j++)
{
dr[_entry[j].CourseName] = 0; //或是1 (即是否)
}
myTable.Rows.Add(dr);
}
}
return myTable;
}现在要把这个DataTable 绑定到GridView ,GridView 上面有checkbox
绑定好以后类似与:学生姓名 |语文 | 数学 | 英语 |物理 |
小华 |复选框1|复选框2 |复选框3|复选框4 |
张三 |复选框1|复选框2 |复选框3|复选框4 |
这个应该怎么实现???(主要是实现把DataTable绑定到GridView,并且GridView 里面要自动根据列的多少,有相应的CheckBox出现)
希望我已经表述清楚了。
解决方案 »
- 这样的计算公式,用Sql怎么表示
- int和String 类型的1==1比较哪个速度快
- TabControl、ImageList图片失真。(已搞定,随便进来一个人接分。)
- WCF与WebService性能比较
- C1combo下拉列表的问题
- TreeView如何激发TreeNodeCheckChanged事件
- 大家说说究竟应该怎样处理数据库表中的空值?
- 如何让C#程序后台运行?
- .NET FrameWork 3.5 访问 Oracle 数据库方法?
- 问题,C#通过ODBC连接SQL Server
- 修改操作系统文件夹图标
- 询问ADO.NET中的SqlDataReader和SqlConnection的关闭问题
我新手
还有就是表格的列是自动从数据库读取的,怎么绑定到GridView呢??<Columns>
<asp:BoundField DataField="xxx" HeaderText="ddd" />
<asp:BoundField DataField="xxx" HeaderText="ddd" />
</Columns>现在怎么知道 “xxx”是什么????
{
foreach (TableCell cell in e.Row.Cells)
{
CheckBox checkBox = new CheckBox();
cell.Controls.Add(checkBox);
}
}
{
foreach (TableCell cell in e.Row.Cells)
{
CheckBox checkBox = new CheckBox();
cell.Controls.Add(checkBox);
}
}
<asp:GridView ID="GridView1" runat="server" onrowcreated="GridView1_RowCreated">
</asp:GridView>后台cs:protected void Page_Load(object sender, EventArgs e)
{
GridView1.DataSource = GetTable();
GridView1.DataBind();
}这个绑定的时候页面已经取得值了
现在就是怎么绑定checkbox的问题了
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
foreach (TableCell cell in e.Row.Cells)
{
CheckBox checkBox = new CheckBox();
cell.Controls.Add(checkBox);
}
}
}
改成:
dr[_entry[j].CourseName] = "true"; //或是"false" (即是否)
看看行不。
我以前也做过类似的,就是这样
http://www.netcsharp.cn/topictag-1.aspxPS:能帮到楼主的话,就点下广告支持下,谢谢咯.....还有顺带给个分...