为这个头痛了有一段时间了。尝试过一些方法也问了一些人查看了一些文档。终于功夫不负有心人,得出了一种比较简便清楚的方法。首先要实现ITemplate接口,建立了一个基类相关代码如下:Public Class BaseTemplate Implements ITemplate Protected TemplateType As ListItemType '模版的种类 Protected pnlMain As Panel '建立主面板 Sub New(ByVal type As ListItemType) Me.TemplateType = type End Sub Sub InstantiateIn(ByVal container As Control) Implements ITemplate.InstantiateIn Me.pnlMain = New Panel Select Case TemplateType Case ListItemType.Header AddHandler Me.pnlMain.DataBinding, AddressOf Me.HeaderTBinding Case ListItemType.Item AddHandler Me.pnlMain.DataBinding, AddressOf Me.ItemTBinding Case ListItemType.AlternatingItem AddHandler Me.pnlMain.DataBinding, AddressOf Me.AlternatingItemTBinding Case ListItemType.Footer AddHandler Me.pnlMain.DataBinding, AddressOf Me.FooterTBinding End Select container.Controls.Add(Me.pnlMain) End Sub '数据Item Protected Overridable Sub ItemTBinding(ByVal sender As Object, ByVal e As System.EventArgs) End Sub '头Item Protected Overridable Sub HeaderTBinding(ByVal sender As Object, ByVal e As System.EventArgs) End Sub '交替Item Protected Overridable Sub AlternatingItemTBinding(ByVal sender As Object, ByVal e As System.EventArgs) End Sub '脚Item Protected Overridable Sub FooterTBinding(ByVal sender As Object, ByVal e As System.EventArgs) End Sub End Class不是很晦涩。通过判断类型,为panel加载绑定事件。下面在给出一个实现的子类代码:Public Class MyTalkTemplate Inherits BaseTemplate Sub New(ByVal type As ListItemType) MyBase.New(type) End Sub Protected Overrides Sub ItemTBinding(ByVal sender As Object, ByVal e As System.EventArgs) Dim pnl As Panel Dim container As DataListItem pnl = CType(sender, Panel) container = CType(pnl.NamingContainer, DataListItem) Dim hTbl As New HTMLTable hTbl.Width = "100%" '保证足够宽 Dim hRow As HTMLTableRow Dim hCell As HTMLTableCell '图片 Dim img As New WebControls.Image img.Height = New Unit(80) '设定长和宽 img.Width = New Unit(80) img.ImageUrl = String.Format("{0}", container.DataItem("TalkImg")) hRow = New HTMLTableRow hCell = New HTMLTableCell hCell.RowSpan = 2 hCell.Controls.Add(img) hRow.Cells.Add(hCell) '主题 hCell = New HTMLTableCell hCell.Align = "Center" hCell.Controls.Add(New LiteralControl("主题")) hRow.Cells.Add(hCell) hTbl.Rows.Add(hRow) hRow = New HTMLTableRow hCell = New HTMLTableCell hCell.Width = "100%" '保证足够的宽度 hCell.VAlign = "Top" '竖直方向位于顶端 hCell.Controls.Add(New LiteralControl(String.Format("
实现动态建立DataList模版
简介:为这个头痛了有一段时间了。尝试过一些方法也问了一些人查看了一些文档。终于功夫不负有心人,得出了一种比较简便清楚的方法。首先要实现ITemplate接口,建立了一个基类相关代码如下:Public Class BaseTemplate ...
责任编辑:admin
- 利用Asp.net 动态创建DataList
- 使用PagedDataSource类实现DataList和Repeater控件的分页显示
- .NET中DataList嵌套说明
- 关于多层repeater,datagrid,datalist嵌套的示例
- 在使用Repeater、DataList 或 DataGrid 的模板列表时,根据不同状态,显示不同颜色
- ASP.NET:DataList控件的选择输入功能
- 给Repeater、Datalist和Datagrid增加自动编号列
- DataList控件也玩分页 (转自aspcn.com)
- DataList的分页技术
- 解决分页的例子。使用DataSet绑定到DataList实现的。数据库使用我刚才贴的这个。

