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

asp.net数据服务控件和数据绑定技术

2008-06-29 11:53 465 查看
asp.net 引入了新的声明性数据绑定语法.这种非常灵活的语法允许开发人员不仅可以绑定到数据源,而且可以绑定到简单属性.集合.表达式甚至是从方法调用返回的结果.下表显示了新语法的一些示例.

数据绑定概述与语法

简单属性 customer: <%# custid %>

集合 orders: <asp:listbox id="list1" datasource=´<%# myarray %>´ runat="server">

表达式 contact: <%# ( customer.first name + " " + customer.lastname ) %>

方法结果 outstanding balance: <%# getbalance(custid) %>

尽管该语法看起来与 asp 的 response.write 快捷方式 <%= %> 相似,但其行为完全不同.asp response.write 快捷方式语法在处理页时计算,而 asp.net 数据绑定语法仅在调用 databind 方法时计算.

databind 是页与所有服务器控件的方法.当在父控件上调用 databind 时,它级联到该控件的所有子控件.例如,datalist1.databind() 将因此对 datalist 模板中的每一控件调用 databind 方法.在页上调用 databind — page.databind() 或只是 databind() — 会导致计算页上的所有数据绑定表达式.通常从 page_load 事件调用 databind,如下例所示.

protected void page_load(object src, eventargs e) {

databind();

}

protected sub page_load(src as object, e as eventargs)

databind()

end sub

protected function page_load(src:object, e:eventargs) : void {

databind();

}

如果绑定表达式在运行时计算为预期的数据类型,则可以在 .aspx 页的声明节中的几乎任何位置使用绑定表达式.上面的简单属性.表达式与方法示例在计算时向用户显示文本.这些情况下,数据绑定表达式必须计算为 string 类型的值.在集合示例中,数据绑定表达式计算为 listbox 的 datasource 属性的有效类型值.您可能会发现有必要转换绑定表达式中的类型值以产生所需的结果.例如,如果 count 是整数:

number of records: <%# count.tostring() %>

绑定到简单属性

asp.net 数据绑定语法支持绑定到公共变量.页的属性与页上其他控件的属性.

下面的示例说明如何绑定到公共变量与页上的简单属性.注意这些值在 databind() 调用前初始化. ... <html>

<head>

<script language="c#" runat="server">

void page_load(object sender, eventargs e) {

page.databind();

}

string custid{

get {

return "alfki";

}

}

int ordercount{

get {

return 11;

}

}

</script>

</head>

<body>

<h3><font face="宋体">到页属性的数据绑定</font></h3>

<form runat=server>

客户:<b><%# custid %></b><br>

未结的订单:<b><%# ordercount %></b>

</form>

</body>

</html>

下面的示例说明如何绑定到另一控件的属性.

<html>

<head>

<script language="c#" runat="server">

void submitbtn_click(object sender, eventargs e) {

// 仅调用“page.databind”,而不是从“statelist”

// 中显式取出变量,然后操作标签控件.

// 这将计算页内所有的 <%# %> 表达式

}

page.databind();

</script>

</head>

<body>

<h3><font face="宋体">到另一个服务器控件的属性的数据绑定</font></h3>

<form runat=server>

<asp:dropdownlist id="statelist" runat="server">

<asp:listitem>ca</asp:listitem>

<asp:listitem>in</asp:listitem>

<asp:listitem>ks</asp:listitem>

<asp:listitem>md</asp:listitem>

<asp:listitem>mi</asp:listitem>

<asp:listitem>or</asp:listitem>

<asp:listitem>tn</asp:listitem>

<asp:listitem>ut</asp:listitem>

</asp:dropdownlist>

<asp:button text="提交" onclick="submitbtn_click" runat=server/>

<p>

选定的州:<asp:label text=´<%# statelist.selecteditem.text %>´ runat=server/>

</form>

</body>

</html>

绑定到集合与列表

像 datagrid.listbox 与 htmlselect 这样的列表服务器控件将集合用作数据源.下面的示例说明如何绑定到通常的公共语言运行库集合类型.这些控件只能绑定到支持 ienumerable.icollection 或 ilistsource 接口的集合.最常见的是绑定到 arraylist.hashtable.dataview 与 datareader.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: