加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

[VB.NET]动态生成的repeater,为什么无法显示?

发布时间:2020-12-16 23:48:36 所属栏目:大数据 来源:网络整理
导读:动态生成的repeater,为什么无法显示? 说明: 1)将Shared Sub Item_DataBinding(ByVal sender As Object,ByVal e As System.EventArgs) ... ... end sub 放在 Public Class MyTemplate... ...End class外面时,无法编译通过,提示是“语句在命名空间中无效”

动态生成的repeater,为什么无法显示?
说明:
1)将Shared Sub Item_DataBinding(ByVal sender As Object,ByVal e As System.EventArgs) ... ... end sub 放在
Public Class MyTemplate... ...End class外面时,无法编译通过,提示是“语句在命名空间中无效”,所以放在了class定义之中。

2)代码中的repeater2是通过designed直接添加的,可以显示,说明可以正常查询到数据。

3)比较奇怪,在web form中手动添加一个repeater控件,id是repeater1,然后就可以了,可这笔算是动态创建啊?

Public Class MyTemplate
Implements System.Web.UI.ITemplate

Dim templateType As ListItemType

Sub New(ByVal type As ListItemType)
templateType = type
End Sub

Shared Sub Item_DataBinding(ByVal sender As Object,ByVal e As System.EventArgs)
Dim ph As PlaceHolder = CType(sender,PlaceHolder)
Dim ri As RepeaterItem = CType(ph.NamingContainer,RepeaterItem)
Dim item1Value As Double = _
Convert.ToDouble(DataBinder.Eval(ri.DataItem,"name "))
Dim item2Value As Double = _
Convert.ToDouble(DataBinder.Eval(ri.DataItem,"hobby "))
CType(ph.FindControl( "item1 "),Label).Text = item1Value.ToString()
CType(ph.FindControl( "item2 "),Label).Text = item2Value
End Sub

Public Sub InstantiateIn(ByVal container As System.Web.UI.Control) _
Implements System.Web.UI.ITemplate.InstantiateIn

Dim ph As New PlaceHolder()
Dim item1 As New Label()
Dim item2 As New Label()
item1.ID = "item1 "
item2.ID = "item2 "

Select Case (templateType)
Case ListItemType.Header
ph.Controls.Add(New LiteralControl( "









" & _ " " & _ " ")) Case ListItemType.Item ph.Controls.Add(New LiteralControl( " ")) AddHandler ph.DataBinding,New EventHandler(AddressOf Item_DataBinding) Case ListItemType.AlternatingItem ph.Controls.Add(New LiteralControl( " ")) AddHandler ph.DataBinding,New EventHandler(AddressOf Item_DataBinding) Case ListItemType.Footer ph.Controls.Add(New LiteralControl( "
Category ID Category Name
"))
ph.Controls.Add(item1)
ph.Controls.Add(New LiteralControl( "
"))
ph.Controls.Add(item2)
ph.Controls.Add(New LiteralControl( "
"))
ph.Controls.Add(item1)
ph.Controls.Add(New LiteralControl( "
")) ph.Controls.Add(item2) ph.Controls.Add(New LiteralControl( "
")) End Select container.Controls.Add(ph) End Sub End Class Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button1.Click Dim DS As DataSet Dim sqlstr As String Dim MyConnection As SqlConnection Dim MyCommand As SqlDataAdapter Dim n As Integer = 1 MyConnection = New SqlConnection( "server=(local);database=Lib;UID=sa;Pwd=123 ") DS = New DataSet() Dim Repeater1 As New Repeater() Repeater1.HeaderTemplate = New MyTemplate(ListItemType.Header) Repeater1.ItemTemplate = New MyTemplate(ListItemType.Item) Repeater1.AlternatingItemTemplate = New MyTemplate(ListItemType.AlternatingItem) Repeater1.FooterTemplate = New MyTemplate(ListItemType.Footer) MyCommand = New SqlDataAdapter( "select * from abc ",MyConnection) MyCommand.Fill(DS,"abc ") Repeater1.DataSource = DS.Tables( "abc ") Repeater1.DataBind() ''Repeater2.DataSource = DS.Tables( "abc ") ''Repeater2.DataBind() Button1.Text = "finished " End Sub __________________________________________________________________________

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读