正文

ASP.NET动态操纵绑定列 [原] 2006-05-26 10:51:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/Csharpsky/14881.html

分享到:

累了一个下午,总算有了点收获,把动态绑定列的操纵方式搞清楚了,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里头没有内容.

阅读(3081) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册