ASP.NET Tutorial/Development/Databinding
Содержание
Bind URL with property
<source lang="csharp">
File: Default.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="DataBindingUrl" %> <!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>Untitled Page</title>
</head> <body>
<form id="form1" runat="server">
<asp:Label id="lblDynamic" runat="server"><%# URL %></asp:Label>
<asp:CheckBox id="chkDynamic" Text="<%# URL %>" runat="server" />
<asp:Hyperlink id="lnkDynamic" Text="Click here!" NavigateUrl="<%# URL %>" runat="server" />
<asp:Image id="imgDynamic" ImageUrl="<%# URL %>" runat="server" />
</form>
</body> </html> File: Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class DataBindingUrl : System.Web.UI.Page {
public string URL; protected void Page_Load(Object sender, EventArgs e) { URL = "http://www.nfex.ru/style/logo.png"; this.DataBind(); }
}</source>
List based data binding
<source lang="csharp">
File: Default.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="ListDataBinding" %> <!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>Untitled Page</title>
</head> <body>
<form id="form1" runat="server">
<asp:ListBox id="MyListBox" runat="server" Width="200px" Height="200px"></asp:ListBox>
<select id="MyHTMLSelect" size="1" runat="server"/>
<asp:DropDownList id="MyDropDownListBox" runat="server" Width="248px" Height="22px"></asp:DropDownList>
<asp:CheckBoxList id="MyCheckBoxList" runat="server" Width="201px" Height="157px"></asp:CheckBoxList>
<asp:RadioButtonList id="MyRadioButtonList" runat="server" Width="249px" Height="158px"></asp:RadioButtonList>
</form>
</body> </html> File: Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Collections.Generic; public partial class ListDataBinding : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) { List<string> fruit = new List<string>(); fruit.Add("A"); fruit.Add("B"); fruit.Add("C"); fruit.Add("D"); fruit.Add("E"); fruit.Add("F"); fruit.Add("G"); fruit.Add("H"); MyListBox.DataSource = fruit; MyDropDownListBox.DataSource = fruit; MyHTMLSelect.DataSource = fruit; MyCheckBoxList.DataSource = fruit; MyRadioButtonList.DataSource = fruit; this.DataBind(); }
}</source>
Map structure based data binding
<source lang="csharp">
File: Default.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="DictionaryCollection" %> <!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>Untitled Page</title>
</head> <body>
<form id="form1" runat="server">
<asp:ListBox ID="MyListBox" runat="server" AutoPostBack="True" Height="192px" OnSelectedIndexChanged="MyListBox_SelectedIndexChanged" Width="200px"></asp:ListBox>
<asp:Label ID="lblMessage" runat="server" Font-Bold="True"></asp:Label>
</form>
</body> </html> File: Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Collections.Generic; public partial class DictionaryCollection : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { Dictionary<int, string> fruit = new Dictionary<int, string>(); fruit.Add(1, "A"); fruit.Add(2, "B"); fruit.Add(3, "C"); fruit.Add(4, "D"); fruit.Add(5, "E"); fruit.Add(6, "F"); fruit.Add(7, "G"); fruit.Add(8, "H"); MyListBox.DataSource = fruit; MyListBox.DataTextField = "Value"; MyListBox.DataValueField = "Key"; this.DataBind(); } } protected void MyListBox_SelectedIndexChanged(object sender, EventArgs e) { lblMessage.Text = "You picked: " + MyListBox.SelectedItem.Text; lblMessage.Text += " which has the key: " + MyListBox.SelectedItem.Value; }
}</source>
Single-value data binding is a different approach to dynamic text.
<source lang="csharp">
To use it, you add special data binding expressions into your .aspx files. These expressions have the following format: <%# expression_goes_here %>
File: Default.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="SimpleDataBinding" %> <!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>Simple Data Binding</title>
</head> <body>
<form id="form1" runat="server">
<asp:Label id="lblDynamic" runat="server" Font-Size="X-Large" > There were <%# myValue %> transactions today. I see that you are using <%# Request.Browser.Browser %>. </asp:Label>
</form>
</body> </html> File: Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class SimpleDataBinding : System.Web.UI.Page {
protected int myValue; protected void Page_Load(object sender, EventArgs e) { myValue = 10; // convert all the data binding expressions on the page. this.DataBind(); }
}</source>