PROSTŘEDÍ ASP.Přehled vazba čistá data

Překlady článku Překlady článku
ID článku: 307860 - Produkty, které se vztahují k tomuto článku.
Tento článek se týká následujících společnosti Microsoft.NET Rámec oborů názvů knihovny tříd:
  • System.data
  • System.data.SqlClient
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek obsahuje úvod do prostředí ASP.ČISTÁ data vazba.

Pro další prostředí ASP.NETTO přehledy, naleznete v následujících Článek znalostní báze Microsoft Knowledge Base:
305140 PROSTŘEDÍ ASP.NET roadmap

Další informace

Pomocí prostředí ASP.Vazba čistá data, můžete vytvořit vazbu všechny ovládací prvky serveru jednoduché vlastnosti, kolekce, výrazy nebo metody. Při použití vytváření datových vazeb, máte větší flexibilitu při použití dat z databáze nebo jiným způsobem.

Tento článek řeší následující datové vazby témata:

Základy vázání dat

< % # %> Syntaxe

PROSTŘEDÍ ASP.NET zavádí novou syntaxi deklarativní, < % # % >. To Syntaxe je základem pro použití datové vazby na stránce ASPX. Všechny datové vazby výrazy musí být obsažena v těchto znaků. V následujícím seznamu obsahuje příklady jednoduché datové vazby z více zdrojů:
  • Vlastnost jednoduchý (syntaxe pro zákazníka):
    <%# custID %>
    					
  • Kolekce (syntaxe pro objednávky):
    <asp:ListBox id="List1" datasource='<%# myArray %>' runat="server">
    					
  • Výraz (syntaxe pro kontakt):
    <%# ( customer.First Name + " " + customer.LastName ) %>
    					
  • Výsledek metody (syntaxe zůstatek):
    <%# GetBalance(custID) %>
    					
V předchozích příkladech v řádku < % # %> tagy Označte, kde má být umístěn v informace ze zdroje dat specifické na stránce ASPX. V následujícím příkladu vázání dat Textové pole Řízení serveru WWW:
<asp:textbox id=txt text="<%# custID %>" runat=server />
				
Další informace o syntaxi vázání dat naleznete v následujících.NET Dokumentaci Framework Software Development Kit (SDK):
Syntaxi výrazu vázání dat
http://msdn2.microsoft.com/en-us/library/bda9bbfx (vs.71) .aspx

Page.DataBind() versus Control.DataBind()

Poté, co byly určeny a nastavení zdrojů dat. pro objekty na stránce ASPX je třeba svázat údaje těchto dat. zdroje. Můžete použít Page.DataBind nebo Control.DataBind Metoda svázat data do zdroje dat.

Obě metody fungují podobně. Hlavním rozdílem je, že jsou vázány všechny zdroje dat na jejich ovládací prvky serveru po Page.DataBind je volána metoda. Žádná data je vykreslen na ovládací prvek, dokud explicitně volat buď Vázání dat metodu ovládacího prvku webového serveru nebo dokud je vyvolat úroveň stránky Page.DataBind Metoda. Obvykle Page.DataBind (nebo Vázání dat) je volána Page_Load událost.

Další informace o Vázání dat Metoda, naleznete v následujícím článku.NET Framework SDK dokumentace: Metoda Control.DataBind
http://msdn.microsoft.com/en-us/library/w5e5992d.aspx

Ovládací prvky seznam vázán na data

Ovládací prvky seznamu jsou speciální webové serverové ovládací prvky, můžete vytvořit vazbu. do kolekce. Tyto ovládací prvky lze zobrazit řádky dat Formát vlastní šablony. Vše seznam ovládacích prvků vystavení Zdroj dat a DataMember vlastnosti, které se používají k vytvoření vazby mezi kolekcemi.

Tyto ovládací prvky lze vázat jejich Zdroj dat Vlastnost odběrem, který podporuje IEnumerable, Rozhraní ICollection, nebo Rozhraní IListSource rozhraní.

Ovládací prvek opakovač

Na Opakovač ovládací prvek seznam šablon, vázán na data. Na Opakovač ovládací prvek "lookless", to znamená, že nemá žádné vestavěné rozložení nebo styly. Proto musí explicitně deklarovat všechny rozložení HTML formátování a styl značky v šablonách ovládacího prvku.

Následující ukázky kódu ukazují, jak jeden ovládací prvek seznamu, můžete Opakovač ovládání zobrazení dat:

POZNÁMKA:: Je třeba upravit parametry jako řetězec připojení potřeby pro vaše prostředí.

Visual Basic.NET
<%@ Page Language="vb" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<script runat="server">
Sub Page_Load(sender As Object, e As EventArgs)

   Dim cnn As SqlConnection = New SqlConnection("server=(local);" & _
                                                "database=pubs;Integrated Security=SSPI")
   Dim cmd As SqlDataAdapter = New SqlDataAdapter("select * from authors", cnn)
   Dim ds As DataSet = New DataSet()
   cmd.Fill(ds)
   Repeater1.DataSource = ds
   Repeater1.DataBind()

End Sub
</script>
<html>
<body>
   <form id="Form1" method="post" runat="server">
      <asp:Repeater id="Repeater1" runat="server">
         <ItemTemplate>
         <%# DataBinder.Eval(Container.DataItem,"au_id") %><br>
	 </ItemTemplate>
      </asp:Repeater>
   </form>
</body>
</html>
				
Visual C#.NET
<%@ Page language="c#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<script runat="server">
void Page_Load(Object sender, EventArgs e) 
{ 
   SqlConnection cnn = new 
       SqlConnection("server=(local);database=pubs;Integrated Security=SSPI"); 
   SqlDataAdapter da = new SqlDataAdapter("select * from authors", cnn); 
   DataSet ds = new DataSet(); 
   da.Fill(ds, "authors"); 
   Repeater1.DataSource = ds.Tables["authors"];
   Repeater1.DataBind();
}
</script>
<html>
<body>
   <form id="WebForm2" method="post" runat="server">
      <asp:Repeater id="Repeater1" runat="server">
         <ItemTemplate>
         <%# DataBinder.Eval(Container.DataItem,"au_id") %><br>
    	 </ItemTemplate>
      </asp:Repeater>
   </form>
</body>
</html>
				
Visual J#.NET
<%@ Page language="VJ#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

 <script runat="server">
void Page_Load(Object sender, EventArgs e) 
{ 
    SqlConnection cnn = new SqlConnection("server=(local);database=pubs;Integrated
         Security=SSPI"); 
    SqlDataAdapter da = new SqlDataAdapter("select * from authors", cnn); 
    DataSet ds = new DataSet(); 
    da.Fill(ds, "authors"); 
    DataTableCollection dtc = ds.get_Tables();
    int index = dtc.IndexOf("authors");
    Repeater1.set_DataSource(dtc.get_Item(index));
    Repeater1.DataBind();
}
</script>
<html>
<body>
   <form id="WebForm2" method="post" runat="server">
      <asp:Repeater id="Repeater1" runat="server">
         <ItemTemplate>
         <%# DataBinder.Eval(Container.DataItem,"au_id") %><br>
             </ItemTemplate>
      </asp:Repeater>
   </form>
</body>
</html>
				
Další informace o Opakovač řízení, naleznete v následujících.NET Framework SDK dokumentace:
Řízení serveru WWW opakovač
http://msdn.microsoft.com/en-us/library/x8f2zez5.aspx

Ovládací prvek dataList

Na DataList Třída je seznam xm, šablon, vázán na data. Je možné Upravte šablony upravit tento ovládací prvek. Na rozdíl od Opakovač řízení, DataList podporuje vykreslování směrové a můžete volitelně vykreslení v Tabulka HTML v době běhu.

Další informace o DataList řízení, naleznete v následujících.NET Framework SDK dokumentace:
Ovládací prvek dataList webového serveru
http://msdn.microsoft.com/en-us/library/9cx2f3ks (VS.85) .aspx

Ovládací prvek DataGrid

Na Objekt DataGrid ovládací prvek je mřížka plně vybavené, vícesloupcovém, vázán na data. K Přizpůsobení rozložení jednotlivých sloupců v Objekt DataGrid, můžete nastavit sloupce typu "šablon" a změnit šablony sloupce. Na Objekt DataGrid ovládací prvek můžete vykreslit bez šablony, které umožňuje tento ovládací prvek ideální pro vykazování scénáře. Objekt DataGrid podporuje také výběr, úpravy a odstranění stránkování a řazení sloupec a tlačítko sloupce.

Další informace o Objekt DataGrid řízení, naleznete v následujících.NET Framework SDK dokumentace:
Prvek DataGrid webového serveru
http://msdn.microsoft.com/en-us/library/aa710742 (VS.71) .aspx

Přístup k datům

Tato část popisuje, jak získat přístup k datům z databáze a data svázat ovládací prvky seznamu. Můžete použít Objekt DataSet nebo Objektu DataReader Třída získat data z databáze.

Třída DataSet

A Objekt DataSet obsahuje kompletní reprezentace dat, včetně tabulky struktury, vztahy mezi tabulkami a řazení dat. Objekt DataSet třídy jsou dostatečně pružná, aby se k ukládání informací z jakéhokoli druhu databáze do souboru Extensible Markup Language (XML). Objekt DataSet třídy jsou bez státní příslušnosti; To znamená, že můžete předat tyto třídy z Klient serveru přitom obsadit prostředky pro připojení k serveru. Následující kód demonstruje použití Objekt DataSet ovládací prvek svázat údaje:

POZNÁMKA:: Je třeba upravit parametry jako řetězec připojení potřeby pro vaše prostředí.

Visual Basic.NET
Dim cnn As SqlConnection = New SqlConnection("server=(local);" & _
                                             "database=pubs;Integrated Security=SSPI")
Dim cmd As SqlDataAdapter = New SqlDataAdapter("select * from authors", cnn)
Dim ds As DataSet = New DataSet()
cmd.Fill(ds)
MyRepeater.DataSource = ds
MyRepeater.DataBind() 
				
Visual C#.NET
SqlConnection cnn = new SqlConnection("server=(local);
                                       database=pubs;Integrated Security=SSPI"); 
SqlDataAdapter da = new SqlDataAdapter("select * from authors", cnn); 
DataSet ds = new DataSet(); 
da.Fill(ds);
MyRepeater.DataSource = ds;
MyRepeater.DataBind(); 
				
Visual J#.NET
SqlConnection cnn = new SqlConnection("server=(local);
                                       database=pubs;Integrated Security=SSPI"); 
SqlDataAdapter da = new SqlDataAdapter("select * from authors", cnn); 
DataSet ds = new DataSet(); 
da.Fill(ds); 
MyRepeater.set_DataSource(ds);
MyRepeater.DataBind();
				
Další informace o Objekt DataSet třídy, viz následující.NET Framework SDK dokumentace:
Třída DataSet
http://msdn2.microsoft.com/en-us/library/System.data.DataSet (vs.71) .aspx

Třída objektu DataReader

Naopak pokud potřebujete pouze zobrazit (a změnit) dat je vykreslený, Objektu DataReader Třída může být lepší řešení. Například je vhodnější použít do Objektu DataReader pro Typ součásti DropDownList řízení, protože Objektu DataReader je pouze pro předávání dat kurzor. Následující kód ukazuje použití SqlDataReader Třída svázat ovládací prvek dat:

Visual Basic.NET
Dim cnn As SqlConnection = New SqlConnection("server=(local);" & _
                                             "database=pubs;Integrated Security=SSPI")
Dim cmd As SqlCommand = New SqlCommand("select * from authors", cnn)

cnn.Open()
MyRepeater.DataSource = cmd.ExecuteReader(CommandBehavior.CloseConnection)
MyRepeater.DataBind()
				
Visual C#.NET
SqlConnection cnn = new SqlConnection("server=(local);
                                       database=pubs;Integrated Security=SSPI");
SqlCommand cmd = new SqlCommand("select * from authors", cnn);

cnn.Open();
MyRepeater.DataSource = cmd.ExecuteReader(CommandBehavior.CloseConnection);
MyRepeater.DataBind();
				
Visual J#.NET
SqlConnection cnn = new SqlConnection("server=(local);
                                       database=pubs;Integrated Security=SSPI"); 

SqlCommand cmd = new SqlCommand("select * from authors", cnn); 

cnn.Open();
MyRepeater.set_DataSource(cmd.ExecuteReader(CommandBehavior.CloseConnection));
MyRepeater.DataBind();
				
Další informace o SqlDataReader třídy a přístup k datům pomocí prostředí ASP.NET, naleznete v následujících tématech na.NET Framework SDK dokumentace:
Třída SqlDataReader
http://msdn.microsoft.com/en-us/library/System.data.SqlClient.sqldatareader.aspx

Vývoj vysoce výkonných ASP.NET aplikací
http://msdn2.microsoft.com/en-us/library/5dws599a (vs.71) .aspx

Vazba v řízení šablon seznamů

Můžete použít šablony v svázat ovládací prvky seznam a Upravte zdroj dat jednotlivých záznamů. Tato část obsahuje tři metody provést.

Metoda DataBinder.Eval

Pokud zdroj dat pracuje s daty, vrácená databáze, zdroj dat může obsahovat mnoho kousků informace. Je možné pomocí obecného DataBinder.Eval Metoda vrátí data. V následující ukázce kódu "au_id" pole ze zdroje dat objektu kontejneru vrátí:
<%# DataBinder.Eval(Container.DataItem,"au_id") %>
				
Další informace o DataBinder.Eval Metoda, naleznete v následujícím článku.NET Framework SDK dokumentace:
Metoda DataBinder.Eval
http://msdn.microsoft.com/en-us/library/4hx47hfe.aspx

Explicitní obsazení

Pokud potřebujete větší kontrolu, můžete použijte explicitní obsazení. Explicitní Převod používá klíčové slovo typ převodu. Tato klíčová slova plnit funkce, ale Kompilátor generuje kód vložený. Proto je poněkud rychlejší spuštění než se funkce volání. Následující ukázky kódu použít explicitní obsazení:

Visual Basic.NET
' DataTable as the DataSource
<%# CType(Container.DataItem, System.Data.DataRowView)("au_id") %>

' DataReader as the DataSource
<%# CType(Container.DataItem, System.Data.Common.DbDataRecord)("au_id") %>

' DataReader as the DataSource
<%# CType(Container.DataItem, System.Data.Common.DbDataRecord)(0) %>
				
Visual C#.NET
// DataTable as the DataSource
<%# ((System.Data.DataRowView)Container.DataItem)["au_id"] %> 

// DataReader as the DataSource
<%# ((System.Data.Common.DbDataRecord)Container.DataItem)["au_id"] %>

// DataReader as the DataSource
<%# ((System.Data.Common.DbDataRecord)Container.DataItem)[0] %>
				
Visual J#.NET
// DataTable as the DataSource
<%# ((System.Data.DataRowView)Container.DataItem)["au_id"] %> 

// DataReader as the DataSource
<%# ((System.Data.Common.DbDataRecord)Container.DataItem)["au_id"] %>

// DataReader as the DataSource
<%# ((System.Data.Common.DbDataRecord)Container.DataItem)[0] %>
				
Poznámka: předchozí vzorky použít buď Objekt DataTable, což je podmnožina Objekt DataSet, nebo Objektu DataReader jako zdroj dat.

Událost ItemDataBound

Můžete použít také ItemDataBound Událost ovládacího prvku vazby data. K této události dojde při položka je vázáno na ovládací prvek data. Následující ukázka kódu HTML definuje Opakovač řídit pomocí Položka ItemTemplate:
<asp:repeater id=rptr runat=server>
   <itemtemplate>
      <asp:label id=lblAuthorID runat=server />
   </itemtemplate>
</asp:repeater>
				
Na stránce jsou vyžadovány následující metody:

Visual Basic.NET
public Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
  
   'TODO: Retrieve data from a database,
   'and bind the data to a list control.

End Sub

public Sub rptr_OnItemDataBound(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles rptr.ItemDataBound
   Dim rec As DataRowView
   rec = e.Item.DataItem

   'Make sure that you have the data.
   If Not IsDBNull(rec) Then
      Dim l1 As Label
      l1 = e.Item.FindControl("lblAuthorID")
      l1.Text = rec("au_id").ToString()
   End If
End Sub
				
Visual C#.NET
public void Page_Init(object sender, System.EventArgs e)
{
   rptr.ItemDataBound += new RepeaterItemEventHandler(rptr_OnItemDataBound);
}
public void Page_Load(object sender, System.EventArgs e)
{
   // TODO: Retrieve data from a database,
   // and bind the data to a list control.
}
public void rptr_OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
   System.Data.Common.DbDataRecord rec = (System.Data.Common.DbDataRecord)
                                          e.Item.DataItem;
   if(rec!=null) //Make sure that you have the data.
   {
      Label l1 = (Label)e.Item.FindControl("lblAuthorID");
      l1.Text = rec["au_id"].ToString();
   }
}
				
Visual J#.NET
public void Page_Init(Object sender, System.EventArgs e)
{
            rptr.add_ItemDataBound(new RepeaterItemEventHandler(rptr_OnItemDataBound));
}
private void Page_Load(Object sender, System.EventArgs e)
{
            // TODO: Retrieve data from a database,
            // and bind the data to a list control.
}
public void rptr_OnItemDataBound(Object sender, RepeaterItemEventArgs e)
{
            System.Data.Common.DbDataRecord rec = (System.Data.Common.DbDataRecord)
                                                   e.get_Item().get_DataItem();
            if (rec != null) //Make sure that you have the data.
            {
                        Label l1 = (Label)e.get_Item().FindControl("lblAuthorID");
                        l1.set_Text(((rec.get_Item("au_id")).ToString()));
            }
}
				

Odkazy

Další obecné informace o prostředí ASP.ČISTÁ, viz Následující diskusní skupiny MSDN:
Microsoft.public.dotNET.Framework.ASPNET

Vlastnosti

ID článku: 307860 - Poslední aktualizace: 18. května 2011 - Revize: 6.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft ASP.NET 1.0
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual J# .NET 2003 Standard Edition
  • Microsoft ASP.NET 1.1
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
Klíčová slova: 
kbarttyperoadmap kbdatabinding kbinfo kbservercontrols kbmt KB307860 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:307860

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com