⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 webdatabinding.aspx

📁 书籍教程 >> .Net教程 >> asp.net编程精彩百例
💻 ASPX
📖 第 1 页 / 共 2 页
字号:
<%@ Page Language="C#" %>
<%@ Register TagPrefix="Acme" Namespace="Acme" Assembly="QSTools" %> <%@ Register TagPrefix="Acme" TagName="SourceRef" Src="/quickstart/aspplus/util/SrcRef.ascx"%>

<!-- #include virtual="/quickstart/aspplus/include/header.inc" -->

<h4>数据绑定服务器控件</h4>
<p>

<div class="indent" style="font-family:Verdana; font-size:8pt;">
    <b> <img align="middle" src="/quickstart/images/bullet.gif">&nbsp;&nbsp;</b>
    <a class="toc2" href="#intro">数据绑定概述和语法</a><br>
    <b> <img align="middle" src="/quickstart/images/bullet.gif">&nbsp;&nbsp;</b>
    <a class="toc2" href="#properties">绑定到简单属性</a><br>
    <b> <img align="middle" src="/quickstart/images/bullet.gif">&nbsp;&nbsp;</b>
    <a class="toc2" href="#lists">绑定到集合和列表</a><br>
    <b> <img align="middle" src="/quickstart/images/bullet.gif">&nbsp;&nbsp;</b>
    <a class="toc2" href="#expressions">绑定表达式或方法</a><br>
    <b> <img align="middle" src="/quickstart/images/bullet.gif">&nbsp;&nbsp;</b>
    <a class="toc2" href="#bindereval">DataBinder.Eval()</a><br>
    <b> <img align="middle" src="/quickstart/images/bullet.gif">&nbsp;&nbsp;</b>
    <a class="toc2" href="#endofsection">本节小结</a><br>
</div>
<p>
<hr>

<!--BEGIN SECTION--> <a name="intro"><span class="subhead">数据绑定概述和语法</span>
<p>ASP.NET 引入了新的声明性数据绑定语法。这种非常灵活的语法允许开发人员不仅可以绑定到数据源,而且可以绑定到简单属性、集合、表达式甚至是从方法调用返回的结果。下表显示了新语法的一些示例。<p>

<div class="indent">
<table class="table2" cellpadding="3">
<tr>
    <td style="width:15%"><b>简单属性</b></td>
    <td class="code" style="color:black">Customer: &lt;%# custID %&gt;</td>
</tr><tr>
    <td style="width:15%"><b>集合</b></td>
    <td class="code" style="color:black">Orders: &lt;asp:ListBox id="List1" datasource='&lt;%# myArray %&gt;' runat="server"&gt;</td>
</tr><tr>
    <td style="width:15%"><b>表达式</b></td>
    <td class="code" style="color:black">Contact: &lt;%# ( customer.First Name + " " + customer.LastName ) %&gt;</td>
</tr><tr>
    <td style="width:15%"><b>方法结果</b></td>
    <td class="code" style="color:black">Outstanding Balance: &lt;%# GetBalance(custID) %&gt;</td>
</tr>
</table>
</div>

<p>尽管该语法看起来与 ASP 的 <b>Response.Write</b> 快捷方式 <span class="code">&lt;%= %&gt;</span> 相似,但其行为完全不同。ASP <b>Response.Write</b> 快捷方式语法在处理页时计算,而 ASP.NET 数据绑定语法仅在调用 <b>DataBind</b> 方法时计算。<p>

<b>DataBind</b> 是<b>页</b>和所有服务器控件的方法。当在父控件上调用 <b>DataBind</b> 时,它级联到该控件的所有子控件。例如,<code>DataList1.DataBind()</code> 将因此对 <b>DataList</b> 模板中的每一控件调用 <b>DataBind</b> 方法。在<b>页</b>上调用 <b>DataBind</b> &mdash; <code>Page.DataBind()</code> 或只是 <code>DataBind()</code> &mdash; 会导致计算页上的所有数据绑定表达式。通常从 <b>Page_Load</b> 事件调用 <b>DataBind</b>,如下例所示。

<p><Acme:TabControl runat="server">
<Tab Name="C#">
protected void Page_Load(Object Src, EventArgs E) {
    DataBind();
}
</Tab>

<Tab Name="VB">
Protected Sub Page_Load(Src As Object, E As EventArgs)
    DataBind()
End Sub
</Tab>

<Tab Name="JScript">
protected function Page_Load(Src:Object, E:EventArgs) : void {
    DataBind();
}
</Tab>

</Acme:TabControl><p>

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

<div class="indent">
        <code>Number of Records:  &lt;%# count.ToString() %&gt;</code>
</div>

<!--BEGIN SECTION--> <br> <a name="properties"><br> <span class="subhead">绑定到简单属性</span>
<p>ASP.NET 数据绑定语法支持绑定到公共变量、<b>页</b>的属性和页上其他控件的属性。

<p>下面的示例说明如何绑定到公共变量和页上的简单属性。注意这些值在 <code>DataBind()</code> 调用前初始化。

<p>
<!-- databinding to a prop on the page -->
<Acme:LangSwitch runat="server">
  <CsTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/webforms/DataBind/CS/DataBind1.aspx"
  ViewSource="/quickstart/aspplus/samples/webforms/DataBind/DataBind1.src"
  Icon="/quickstart/aspplus/images/databind1.gif"
  Caption="C# DataBind1.aspx"
  runat="server" />
  </CsTemplate>
  <VbTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/webforms/DataBind/VB/DataBind1.aspx"
  ViewSource="/quickstart/aspplus/samples/webforms/DataBind/DataBind1.src"
  Icon="/quickstart/aspplus/images/databind1.gif"
  Caption="VB DataBind1.aspx"
  runat="server" />
  </VbTemplate>
  <JsTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/webforms/DataBind/JS/DataBind1.aspx"
  ViewSource="/quickstart/aspplus/samples/webforms/DataBind/DataBind1.src"
  Icon="/quickstart/aspplus/images/databind1.gif"
  Caption="JScript DataBind1.aspx"
  runat="server" />
  </JsTemplate>
</Acme:LangSwitch>

<p>下面的示例说明如何绑定到另一控件的属性。
<p>
<!-- databinding to a prop of another control -->
<Acme:LangSwitch runat="server">
  <CsTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/webforms/DataBind/CS/DataBind2.aspx"
  ViewSource="/quickstart/aspplus/samples/webforms/DataBind/DataBind2.src"
  Icon="/quickstart/aspplus/images/databind2.gif"
  Caption="C# DataBind2.aspx"
  runat="server" />
  </CsTemplate>
  <VbTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/webforms/DataBind/VB/DataBind2.aspx"
  ViewSource="/quickstart/aspplus/samples/webforms/DataBind/DataBind2.src"
  Icon="/quickstart/aspplus/images/databind2.gif"
  Caption="VB DataBind2.aspx"
  runat="server" />
  </VbTemplate>
  <JsTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/webforms/DataBind/JS/DataBind2.aspx"
  ViewSource="/quickstart/aspplus/samples/webforms/DataBind/DataBind2.src"
  Icon="/quickstart/aspplus/images/databind2.gif"
  Caption="JScript DataBind2.aspx"
  runat="server" />
  </JsTemplate>
</Acme:LangSwitch>


<!--BEGIN SECTION--> <br> <a name="lists"><br> <span class="subhead">绑定到集合和列表</span>
<p>像 <b>DataGrid</b>、<b>ListBox</b> 和 <b>HTMLSelect</b> 这样的列表服务器控件将集合用作数据源。下面的示例说明如何绑定到通常的公共语言运行库集合类型。这些控件只能绑定到支持 <b>IEnumerable</b>、<b>ICollection</b> 或 <b>IListSource</b> 接口的集合。最常见的是绑定到 <b>ArrayList</b>、<b>Hashtable</b>、<b>DataView</b> 和 <b>DataReader</b>。

<p>
<p>下面的示例说明如何绑定到 <b>ArrayList</b>。
<p>
<!-- DataBinding to an ArrayList -->
<Acme:LangSwitch runat="server">
  <CsTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/webforms/DataBind/CS/DataBind3.aspx"
  ViewSource="/quickstart/aspplus/samples/webforms/DataBind/DataBind3.src"
  Icon="/quickstart/aspplus/images/databind3.gif"
  Caption="C# DataBind3.aspx"
  runat="server" />
  </CsTemplate>
  <VbTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/webforms/DataBind/VB/DataBind3.aspx"
  ViewSource="/quickstart/aspplus/samples/webforms/DataBind/DataBind3.src"
  Icon="/quickstart/aspplus/images/databind3.gif"
  Caption="VB DataBind3.aspx"
  runat="server" />
  </VbTemplate>
  <JsTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/webforms/DataBind/JS/DataBind3.aspx"
  ViewSource="/quickstart/aspplus/samples/webforms/DataBind/DataBind3.src"
  Icon="/quickstart/aspplus/images/databind3.gif"
  Caption="JScript DataBind3.aspx"
  runat="server" />
  </JsTemplate>
</Acme:LangSwitch>

<p>下面的示例说明如何绑定到 <b>DataView</b>。注意 <b>DataView</b> 类在 <b>System.Data</b> 命名空间中定义。
<p>
<!-- Databinding to a DataView -->
<Acme:LangSwitch runat="server">
  <CsTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/webforms/DataBind/CS/DataBind4.aspx"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -