ASP.NET Tutorial/Data Binding/DataList — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Версия 18:30, 26 мая 2010
Содержание
A DataList control that contains a template that includes two DataBinding expressions.
<source lang="csharp">
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Show DataList</title>
</head> <body>
<form id="form1" runat="server">
<asp:DataList id="DataList1" DataSourceId="srcProducts" Runat="server"> <ItemTemplate> Product Title: <%#Eval("Title")%>
Date Released: <%#Eval("DateReleased", "{0:D}") %>
</ItemTemplate> </asp:DataList> <asp:SqlDataSource id="srcProducts" ConnectionString="Data Source=.\SQLExpress; AttachDbFilename=|DataDirectory|MyDatabase.mdf; Integrated Security=True;User Instance=True" SelectCommand="SELECT Title,Director,DateReleased FROM Products" Runat="server" />
</form>
</body> </html></source>
Get an flexible and feature-rich UI using the DataList control
<source lang="csharp">
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"
Inherits="Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">
<title>DataList in action</title>
</head> <body>
<form id="form1" runat="server"> <asp:DropDownList ID="Countries" runat="server" AutoPostBack="true" AppendDataBoundItems="True" OnSelectedIndexChanged="Countries_SelectedIndexChanged"> <asp:ListItem>[No country]</asp:ListItem> </asp:DropDownList> <asp:DataList ID="DataList1" runat="server" RepeatColumns="5" GridLines="Both"> <FooterStyle Font-Bold="true" ForeColor="blue" /> <HeaderTemplate>
We have customers in the following cities
</HeaderTemplate> <ItemTemplate> <%# Eval("City") %> <%# Eval("Country")%> </ItemTemplate> <FooterTemplate> <%# CalcTotal() %> cities </FooterTemplate> </asp:DataList> </form>
</body> </html> File: Default.aspx.cs using System; using System.Data; using System.Data.SqlClient; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls;
public partial class Default : System.Web.UI.Page {
DataTable data; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { FillCountries(); } } protected void FillCountries() { string connString = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString; string cmdText = "SELECT DISTINCT country FROM customers;"; data = new DataTable(); SqlDataAdapter adapter = new SqlDataAdapter(cmdText, connString); adapter.Fill(data); Countries.DataSource = data; Countries.DataTextField = "country"; Countries.DataBind(); } protected int CalcTotal() { return data.Rows.Count; } protected void Countries_SelectedIndexChanged(object sender, EventArgs e) { string connString = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString; string cmdText = "SELECT DISTINCT country, city FROM customers WHERE country=@TheCountry"; data = new DataTable(); SqlDataAdapter adapter = new SqlDataAdapter(cmdText, connString); adapter.SelectCommand.Parameters.AddWithValue("@TheCountry", Countries.SelectedValue); adapter.Fill(data); DataList1.DataSource = data; DataList1.DataBind(); }
}</source>
Nested data bind sample
<source lang="csharp">
<%@ Page Language="C#"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">
<title>Untitled Page</title>
</head> <body>
<form id="form1" runat="server">
Nested data bind sample
<asp:DataList ID="_outerDataList" runat="server" DataSourceID="_bookstoreDataSource"> <ItemTemplate> Title: <%# Eval("Title") %>
<asp:DataList runat="server" ID="_nestedDastaList" DataSource="<%# XPathSelect("chapter") %>"> <ItemTemplate>
Chapternum: <%# XPath("@num") %>
Chapter name: <%# XPath("@name") %>
<%# XPath(".") %>
</ItemTemplate> </asp:DataList>
</ItemTemplate> </asp:DataList> <asp:XmlDataSource ID="_bookstoreDataSource" runat="server" DataFile="~/App_Data/Data.xml" XPath="/Data/genre/book" />
</form>
</body> </html> File: Data.xml
<genre name="Business"> <book ISBN="1" Title="Database" Price="19.99"> <chapter num="1" name="Introduction"> Abstract... </chapter> <chapter num="2" name="Body"> Abstract... </chapter> <chapter num="3" name="Conclusion"> Abstract... </chapter> </book> <book ISBN="2" Title="Computer" Price="2.99"> <chapter num="1" name="Introduction"> Abstract... </chapter> <chapter num="2" name="Body"> Abstract... </chapter> <chapter num="3" name="Conclusion"> Abstract... </chapter> </book> <book ISBN="3" Title="VB" Price="19.99"> <chapter num="1" name="Introduction"> Abstract... </chapter> <chapter num="2" name="Body"> Abstract... </chapter> <chapter num="3" name="Conclusion"> Abstract... </chapter> </book> </genre>
</source>