本文整理汇总了VB.NET中System.Web.UI.WebControls.DataBoundControl类的典型用法代码示例。如果您正苦于以下问题:VB.NET DataBoundControl类的具体用法?VB.NET DataBoundControl怎么用?VB.NET DataBoundControl使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了DataBoundControl类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的VB.NET代码示例。
示例1: PerformSelect
' 导入命名空间
Imports System.Collections
Imports System.ComponentModel
Imports System.Security.Permissions
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Namespace Samples.AspNet.Controls.VB
<AspNetHostingPermission(SecurityAction.Demand, _
Level:=AspNetHostingPermissionLevel.Minimal), _
AspNetHostingPermission(SecurityAction.InheritanceDemand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Class TextBoxSet
Inherits DataBoundControl
Private alBoxSet As IList
Public ReadOnly Property BoxSet() As IList
Get
If alBoxSet Is Nothing Then
alBoxSet = New ArrayList()
End If
Return alBoxSet
End Get
End Property
Public Property DataTextField() As String
Get
Dim o As Object = ViewState("DataTextField")
If o Is Nothing Then
Return String.Empty
Else
Return CStr(o)
End If
End Get
Set(ByVal value As String)
ViewState("DataTextField") = value
If (Initialized) Then
OnDataPropertyChanged()
End If
End Set
End Property
Protected Overrides Sub PerformSelect()
' Call OnDataBinding here if bound to a data source using the
' DataSource property (instead of a DataSourceID) because the
' data-binding statement is evaluated before the call to GetData.
If Not IsBoundUsingDataSourceID Then
OnDataBinding(EventArgs.Empty)
End If
' The GetData method retrieves the DataSourceView object from the
' IDataSource associated with the data-bound control.
GetData().Select(CreateDataSourceSelectArguments(), _
AddressOf OnDataSourceViewSelectCallback)
' The PerformDataBinding method has completed.
RequiresDataBinding = False
MarkAsDataBound()
' Raise the DataBound event.
OnDataBound(EventArgs.Empty)
End Sub
Private Sub OnDataSourceViewSelectCallback(ByVal retrievedData As IEnumerable)
' Call OnDataBinding only if it has not already
' been called in the PerformSelect method.
If IsBoundUsingDataSourceID Then
OnDataBinding(EventArgs.Empty)
End If
' The PerformDataBinding method binds the data in the retrievedData
' collection to elements of the data-bound control.
PerformDataBinding(retrievedData)
End Sub
Protected Overrides Sub PerformDataBinding(ByVal retrievedData As IEnumerable)
MyBase.PerformDataBinding(retrievedData)
' If the data is retrieved from an IDataSource as an IEnumerable
' collection, attempt to bind its values to a set of TextBox controls.
If Not (retrievedData Is Nothing) Then
Dim dataItem As Object
For Each dataItem In retrievedData
Dim box As New TextBox()
' The dataItem is not just a string, but potentially
' a System.Data.DataRowView or some other container.
' If DataTextField is set, use it to determine which
' field to render. Otherwise, use the first field.
If DataTextField.Length > 0 Then
box.Text = DataBinder.GetPropertyValue( _
dataItem, DataTextField, Nothing)
Else
Dim props As PropertyDescriptorCollection = _
TypeDescriptor.GetProperties(dataItem)
' Set the "default" value of the TextBox.
box.Text = String.Empty
' Set the true data-bound value of the TextBox,
' if possible.
If props.Count >= 1 Then
If props(0).GetValue(dataItem) IsNot Nothing Then
box.Text = props(0).GetValue(dataItem).ToString()
End If
End If
End If
BoxSet.Add(box)
Next dataItem
End If
End Sub
Protected Overrides Sub Render(ByVal writer As HtmlTextWriter)
' Render nothing if the control is empty.
If BoxSet.Count <= 0 Then
Return
End If
' Make sure the control is declared in a form tag with runat=server.
If Not (Page Is Nothing) Then
Page.VerifyRenderingInServerForm(Me)
End If
' For this example, render the BoxSet as
' an unordered list of TextBox controls.
writer.RenderBeginTag(HtmlTextWriterTag.Ul)
Dim item As Object
For Each item In BoxSet
Dim box As TextBox = CType(item, TextBox)
' Write each element as
' <li><input type="text" value="string"><input/></li>
writer.WriteBeginTag("li")
writer.Write(">")
writer.WriteBeginTag("input")
writer.WriteAttribute("type", "text")
writer.WriteAttribute("value", box.Text)
writer.Write(">")
writer.WriteEndTag("input")
writer.WriteEndTag("li")
Next item
writer.RenderEndTag()
End Sub
End Class
End Namespace