ASP.NET Tutorial/Development/Databinding

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

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();
    }
}