累了一个下午,总算有了点收获,把动态绑定列的操纵方式搞清楚了,ASP.NET中Datagrid实在太强大了。因为今天给学生讲代码用的是vb语法,干脆就cv过来:
Dim qstr As String = "Provider=""Microsoft.Jet.OLEDB.4.0"";Data Source=""" + Request.PhysicalApplicationPath + "Student.mdb"""
Dim odc As OleDbConnection = New OleDbConnection(qstr)
If odc.State = ConnectionState.Open Then
odc.Close()
End If
Dim oda As OleDbDataAdapter = New OleDbDataAdapter("select * from Student_info", odc)
Dim odb As OleDbCommandBuilder = New OleDbCommandBuilder(oda)
Dim myds As DataSet = New DataSet
oda.Fill(myds)
odc.Close()
'创建绑定列,headertext是标题属性,datafield是数据绑定字段
'下面在datagrid中添加了四个模板列,一旦datagrid绑定,则每个
'模板列会一一与数据字段绑定
Dim col As BoundColumn = New BoundColumn
col.HeaderText = "学号"
col.DataField = "Stu_ID"
col.SortExpression = "String"
dg_Student.Columns.Add(col)
col = New BoundColumn
col.HeaderText = "姓名"
col.DataField = "Stu_Name"
dg_Student.Columns.Add(col)
col = New BoundColumn
col.HeaderText = "性别"
col.DataField = "Stu_Sex"
dg_Student.Columns.Add(col)
col = New BoundColumn
col.HeaderText = "地址"
col.DataField = "Stu_Address"
dg_Student.Columns.Add(col)
'创建视图,创建排序规则
Dim dv As DataView = myds.Tables(0).DefaultView
dv.Sort = "Stu_ID"
''''''''''''''''''
Session("student" = myds
dg_Student.DataSource = dv
dg_Student.DataBind()
注意:datagrid列集合中可以还可以加入模板列,代码如下,还没测试过:(C#)
TemplateColumn tm2=new TemplateColumn();
tm2.ItemTemplate=new ColumnTemplate2();
tm2.HeaderText="学院";
DataGrid1.Columns.Add(tm2);
这里的ColumnTemplate2是自定义的模板类,声明如下,它实现了ITemplate接口
public class ColumnTemplate2 : ITemplate
{
public void InstantiateIn(Control container)
{
DropDownList dpl = new DropDownList();
dpl.ID="dep";
container.Controls.Add(dpl);
//加入一个id="dep"的下拉框,数据在DataGrid的ItemDataBound中绑定
}
}
下面只需将模板绑定到数据列:
DropDownList ddl=(DropDownList)e.Item.FindControl("dep";
ddl.DataSource=ds.Tables["table1"];
ddl.DataTextField="depname";
ddl.DataValueField="depid";
ddl.DataBind();
搞定,但是还有一个问题没有解决,就是手动用adapter生成的dataset11为什么不能保存到session里头,重新提交页才发现session里头没有内容.
正文
ASP.NET动态操纵绑定列 [原] 2006-05-26 10:51:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/Csharpsky/14881.html
阅读(2958) | 评论(0)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论