我们在第五章ado.net 中已经介绍过如何和如access 以及ms sql server 数据源进行互动,接下来我们要介绍如何将这些数据源的数据透过控件来展示。要将数据透过控件显示,可撰写一些程序进行手动的数据系结(data binding);或是透过控件本身的系结能力,让控件自动呈现数据。asp.net 可以当作数据源的对象很多,从最基本的变数,到array、arraylist、collection、datasetview、dataview、dataset、datatable;或是一个对象的属性、一个叙述式、程序的传回值等都可以当作数据源。
数据系结叙述
要将控件和数据源进行系结的工作,最简单的方式就是直接把数据指定给控件的某个属性,或者是使用数据系结叙述。数据系结叙述可以让控件取得数据源的数据,只要在控件中需要数据源提供数据的地方插入'<%#数据源%>' 这个叙述即可。
变数的系结
变量也可以当成数据源来提供数据。下列范例将label web 控件利用数据系结叙述,取得变量的数据:
<html>
<asp:label id="label1" text='<%#strmsg%>' runat="server"/>
<script language="vb" runat="server">
dim strmsg as string '宣告网页阶层的变量
sub page_load(sender as object, e as eventargs)
strmsg = "这是一个简单的数据系结范例"
label1.databind()
end sub
</script>
</html>
要将label1 的text 属性和数据源进行系结,要利用数据系结叙述'
<%#strmsg%>' 表示要和strmsg 这个变量进行数据系结。由于控件不会自动和数据源进行系结的动作,我们必须使用控件的databind 方法来和数据源进行系结;所以我们在page_load 事件程序中利用label web控件的databind 方法和数据源进行数据系结,label web 控件才能取得数据源的数据。我们可以呼叫page 对象的databind 方法,page 对象的databind 方法使用起来非常方便,在呼叫page 对象的databind 方法时,page 对象会自动呼叫所有控件的databind 方法进行数据系结的工作,而不需要逐一呼叫每个控件的databind 方法。另外特别注意,
由于数据系结叙述只可以和「网页阶层」变量进行数据系结的工作,所以变量必需在网页阶层的宣告区宣告才可以。