您的位置:首页 > 编程语言 > ASP

asp.net数据绑定表达式

2014-08-23 19:47 218 查看

一、简单数据绑定

  数据绑定表达式是由<%…%>(分隔符)包裹的可执行代码,以#号作为前缀。一般使用数据绑定表达式在服务器控件的起始标签内设置属性值。数据绑定表达式可以通过DataBoundLiteralControl类的实例以编程方式加以管理。

(Tips:数据绑定表达式的确是能够在运行时解析的可执行代码。其目的在于生成控件用于显示或编辑的数据。通常,这种代码会从数据源获取数据,但并不总是这样。只要返回绑定的数据,任何可执行的代码都是可以的。数据绑定表达式仅当控件的DataBinding事件引发时才会被计算)

以下代码能够将标签的文本设置为当前时间:

<asp:Label runat="server" Text='<%# DateTime.Now.ToString() %>'/>

在分隔符中,我们可以调用用户定义在页面中的实例方法、静态方法、属性以及页面中的其他组件的方法,以下代码将标签绑定到一个下拉列表控件当前选择的元素上:

<asp:Label runat="server" Text='<%# dropdown.SelectedItem.Text %>'/>

注意,如果要对表达式用引号,应选择单引号。数据绑定表达式能够接受运算符的最小集合,主要用于联接子表达式。如果需要更高级的处理或者使用处理外部参数,应用用户自定义的方法。我们只需将该方法申明为公共或受保护的即可。

要点:我们在页面中定义的数据绑定表达式会在DataBind被调用后计算。我们可以调用页面对象的DataBind方法,也可以调用相应控件的。如果调用页面对象上的,便以递归方式调用定义在该页面上所有控件的DataBind方法。如果不调用DataBind,<%…%>永远不会被计算。

数据绑定表达式需要确保其返回值的类型匹配通过属性(attribute)反映的控件属性(property)的类型。但使用纯文本常量字符串没有问题,因为页面解析引擎会识别该表达式,如果需要,解析器会插入适当的类型转换代码。

二、DataBinder类

    Eval方法

Databinder.Eval的一般语法为:

<%# DataBinder.Eval(Container.DataItem,expression)%>

第三个参数是可选的,上述代码没有使用。这个参数是一个字符串,包含绑定值的格式设置。Cantainer.DataItem表达式用于引用一个对象,该对象中的表达式会被计算。expression一般为数据项对象中要访问的字段的名称。它可以为包括索引或属性名的表达式。DataItem属性代表当前容器上下文中的对象。通常,容器一般为项目对象的当前实例(如DataGridItem对象),会被显示出来。

更简洁的Eval

<%# Eval(expression) %>

<%# ...%>分隔符中出现的所有代码都会被asp.net运行库特殊处理。

三、其他数据绑定方法

在asp.net中,数据绑定表达式不只是可枚举的和表达式数据的只读算式。除DataBinder外asp.net提供的类还能绑定到XPath表达式执行后的结果上,这种表达式针对实现了IXPathNavigable接口的类。这个类为XPathBinder,其用途与DataBinder的用途相同,但它针对的是XML数据。XPathBinder带有一个名为XPath的数据绑定方法。

Asp.net还支持双向数据绑定,我们能够通过新的数据绑定方法Bind,对数据项的属性进行读和写。Eval方法代表单向的数据绑定,它能够读取数据,但不能写。在使用Eval的地方也可以使用BInd,二者的语法类似

<asp:TextBox Runat="Server" ID="TheNotes" Text='<%# BInd("notes")'/>


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  .net asp.net 数据绑定