利用Asp.net 动态创建DataList

王朝asp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'Put user code to initialize the page here

Dim dl As New DataList

dl.HeaderTemplate = New CreateDL(ListItemType.Header)

dl.ItemTemplate = New CreateDL(ListItemType.Item)

dl.AlternatingItemTemplate = New CreateDL(ListItemType.AlternatingItem)

dl.FooterTemplate = New CreateDL(ListItemType.Footer)

Dim d As New Data

dl.DataSource = d.getTree

dl.DataBind()

div1.Controls.Add(dl)

End Sub

Public Class CreateDL

Implements ITemplate

Shared itemcount As Integer = 0

Dim TemplateType As ListItemType

Sub New(ByVal type As ListItemType)

TemplateType = type

End Sub

Sub InstantiateIn(ByVal container As Control) Implements ITemplate.InstantiateIn

Dim lc As New Literal

Select Case TemplateType

Case ListItemType.Header

lc.Text = "<TABLE border=1><TR><TH>Items</TH></TR>"

Case ListItemType.Item

lc.Text = "<TR><TD>Item number: " '& itemcount.ToString & "</TD></TR>"

AddHandler lc.DataBinding, AddressOf TemplateControl_Databinding

Case ListItemType.AlternatingItem

lc.Text = "<TR><TD bgcolor=lightblue>Item number: " _

& itemcount.ToString & "</TD></TR>"

Case ListItemType.Footer

lc.Text = "</TABLE>"

End Select

container.Controls.Add(lc)

itemcount += 1

End Sub

Private Sub TemplateControl_DataBinding(ByVal sender As Object, _

ByVal e As System.EventArgs)

Dim lc As Literal

lc = CType(sender, Literal)

Dim container As DataListItem

container = CType(lc.NamingContainer, DataListItem)

lc.Text &= DataBinder.Eval(container.DataItem, "text")

lc.Text &= "</TD></TR>"

End Sub

End Class

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航