ASP.NET Tutorial/Development/Databinding
Содержание
Bind URL with property
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">
<div>
<asp:Label id="lblDynamic" runat="server"><%# URL %></asp:Label>
<br /><br />
<asp:CheckBox id="chkDynamic" Text="<%# URL %>" runat="server" />
<br /><br />
<asp:Hyperlink id="lnkDynamic" Text="Click here!" NavigateUrl="<%# URL %>"
runat="server" />
<br /><br />
<asp:Image id="imgDynamic" ImageUrl="<%# URL %>" runat="server" />
</div>
</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();
}
}
List based data binding
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">
<div>
<asp:ListBox id="MyListBox"
runat="server"
Width="200px"
Height="200px"></asp:ListBox>
<br /><br />
<select id="MyHTMLSelect" size="1" runat="server"/>
<br /><br />
<asp:DropDownList id="MyDropDownListBox"
runat="server"
Width="248px"
Height="22px"></asp:DropDownList>
<br /><br />
<asp:CheckBoxList id="MyCheckBoxList"
runat="server"
Width="201px"
Height="157px"></asp:CheckBoxList>
<br /><br />
<asp:RadioButtonList id="MyRadioButtonList"
runat="server"
Width="249px"
Height="158px"></asp:RadioButtonList>
</div>
</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();
}
}
Map structure based data binding
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">
<div>
<asp:ListBox ID="MyListBox"
runat="server"
AutoPostBack="True"
Height="192px"
OnSelectedIndexChanged="MyListBox_SelectedIndexChanged"
Width="200px"></asp:ListBox><br />
<br />
<asp:Label ID="lblMessage" runat="server" Font-Bold="True"></asp:Label>
</div>
</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;
}
}
Single-value data binding is a different approach to dynamic text.
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">
<div>
<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>
</div>
</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();
}
}