ASP.NET Tutorial/Development/Databinding

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

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>