首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

9.3.3  显示数据

要执行最后的操作—— 显示数据,必须重写在回调例程中调用的PerformDataBinding方法。这个方法的目的非常简单:处理提取的所有项,对数据进行一定的处理。在大多数情况下,都是用提取的数据更新用户界面。前面的示例代码只提取了一个值,所以代码只把这个值移动到页面上(其他控件可以显示所有的字段或一个DataValueField)。

给PerformDataBinding方法传送从数据源提取的数据,作为参数data。开始该例程时,应先调用底层的PerformDataBinding方法,确保执行DataBound类中的所有实用代码。还应确保在显示数据之前传送它们,如下面的Visual Basic 2005代码所示(这里声明的变量将在本章后面使用)。

Protected Overrides Sub PerformDataBinding( _

                       ByVal data As System.Collections.IEnumerable)

Dim objData As Object

Dim tb As System.Web.UI.WebControls.TextBox

Dim ctr As Integer

Dim strFieldName as String

   MyBase.PerformDataBinding(data)

   If data IsNot Nothing Then

C#的对应代码如下所示。

protected override void PerformDataBinding(System.Collections.IEnumerable

data)

{

 System.Web.UI.WebControls.TextBox tb;

 int ctr;

 string strFieldName;

 base.PerformDataBinding(data);

 if(data != null)

  {

有了数据后,就可以迭代它们,处理相应的字段了。可以使用DataBinder对象的GetPropertyValue方法提取数据。必须给GetPropertyValue方法传送三个参数。

●       数据项

●       要提取的字段名

●       控制返回数据的格式的格式字符串(使用控件的开发人员可以使用DataTextFormat属性设置这个格式)

在下面的Visual Basic 2005示例中,提取DataTextField属性指定的字段,用于定制文本框的值,该文本框添加到数据绑定控件的Controls集合中。传送给GetPropertyValue方法的参数是要处理的数据项和在DataTextField中指定的字段名(没有提供格式)。

提示:

应检查是否已正确设置提取数据所需的所有属性。例如,在下面的例子中,先检查DataTextField,再将它用于提取数据。

If DataTextField > "" Then

    strFieldName = DataTextField

    ctr = 0

    For Each objData In data

         tb = New System.Web.UI.WebControls.TextBox

         ctr = ctr + 1

         tb.ID = "tb" & ctr

         tb.Text = System.Web.UI.DataBinder.GetPropertyValue( _

                                  objData, strFieldName, Nothing)

         Me.Controls.Add(tb)

    Next

End If

C#的对应代码如下所示。

if(DataTextField.CompareTo("") > 0)

{

 strFieldName = DataTextField;

 ctr = 0;

  foreach (object objData in data)

 {

   tb = new System.Web.UI.WebControls.TextBox();

   ctr = ctr + 1;

   tb.ID = "tb" + ctr;

   tb.Text = System.Web.UI.DataBinder.GetPropertyValue(objData,

                             strFieldName, null);

   this.Controls.Add(tb);

 }

}

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论