Συμβουλή συστήματοςΑυτό το άρθρο ισχύει για διαφορετικό λειτουργικό σύστημα από αυτό που χρησιμοποιείτε. Το περιεχόμενο του άρθρου που ενδέχεται να μην σας αφορά έχει απενεργοποιηθεί.
Αυτό το άρθρο περιγράφει τον τρόπο χρήσης των ένθετωνRepeaterτα στοιχεία ελέγχου για την εμφάνιση ιεραρχικών δεδομένων. Μπορείτε να εφαρμόσετε αυτή την έννοια σε άλλα στοιχεία ελέγχου δεσμευμένα σε λίστα.
Στο διακομιστήFILEμενού, σημείοΝέα, και στη συνέχεια κάντε κλικ στο κουμπίΤο έργο.
Κάντε κλικΤο Visual C# έργαunderΤύποι έργου, και στη συνέχεια κάντε κλικ στο κουμπίΕφαρμογή Web του ASP.NETunderΠρότυπα.
ΣτοΘέσηπλαίσιο, διαγράψτε το WebApplication#, και στη συνέχεια πληκτρολογήστεNestedRepeater. Εάν χρησιμοποιείτε τον τοπικό διακομιστή, αφήστε το όνομα του διακομιστή ωςhttp://localhost. Εμφανίζεται η ακόλουθη διαδρομή στο στοΘέση"Τύπος" (Type):
http://localhost/ NestedRepeater
Κάντε κλικOk.
ΣτοΕξερεύνηση λύση, κάντε δεξιό κλικ στοNestedRepeaterόνομα κόμβου του Project, τοποθετήστε το δείκτηADD, και στη συνέχεια κάντε κλικ στο κουμπίΠροσθήκη φόρμας Web.
Για να ονομάσετε τη φόρμα Web, πληκτρολογήστε:NestedRepeater, και κάντε κλικ στο κουμπίOpen.
Δημιουργείται η νέα φόρμα Web. Ανοίγει σε προβολή σχεδίασης στο την ανάπτυξη περιβάλλοντος IDE (Integrated) του Microsoft Visual Studio .NET. Από την εργαλειοθήκη, επιλέξτε τοRepeaterέλεγχος και, στη συνέχεια, σύρετέ το στη σελίδα φόρμας Web.
Αλλαγή τουIDΑυτή η ιδιότηταRepeaterΈλεγχος γιαparentRepeater.
Μεταβείτε στην προβολή HTML για αυτήν τη φόρμα Web. Για να το κάνετε αυτό, κάντε κλικ στοHTMLστην καρτέλα στην κάτω αριστερή γωνία της σχεδίασης. Για ναRepeaterστοιχείο ελέγχου δημιουργεί τον ακόλουθο κώδικα HTML:
Στην Εξερεύνηση των λύσεων, κάντε δεξιό κλικNestedRepeater.aspx, και στη συνέχεια κάντε κλικ στο κουμπίΠροβολή κώδικαΓια να μεταβείτε στο αρχείο κώδικα πίσω NestedRepeater.aspx.cs.
Προσθέστε την ακόλουθη δήλωση πεδίου ονόματος στην αρχή του αρχείου:
using System.Data;
using System.Data.SqlClient;
Προσθέστε τον ακόλουθο κώδικα για τοPage_Loadτο συμβάν για να δημιουργήσετε μια σύνδεση με τοpubsβάση δεδομένων, και στη συνέχεια να συνδέσετε τοΣυγγραφείςπίνακας με τοRepeaterControl:
public void Page_Load(object sender, EventArgs e)
{
//Create the connection and DataAdapter for the Authors table.
SqlConnection cnn = new SqlConnection("server=(local);database=pubs; Integrated Security=SSPI");
SqlDataAdapter cmd1 = new SqlDataAdapter("select * from authors",cnn);
//Create and fill the DataSet.
DataSet ds = new DataSet();
cmd1.Fill(ds,"authors");
//Insert code in step 4 of the next section here.
//Bind the Authors table to the parent Repeater control, and call DataBind.
parentRepeater.DataSource = ds.Tables["authors"];
Page.DataBind();
//Close the connection.
cnn.Close();
}
ΣΗΜΕΙΩΣΗ: Ίσως χρειαστεί να τροποποιήσετε τη συμβολοσειρά σύνδεσης βάσης δεδομένων, ανάλογα με το περιβάλλον σας.
Αποθήκευση όλων των αρχείων.
ΣτοΕξερεύνηση λύση, κάντε δεξιό κλικ στο NestedRepeater.aspx και στη συνέχεια κάντε κλικ στο κουμπίΣύνολο με την έναρξη της σελίδας.
Στο διακομιστήΔημιουργίαΚάντε κλικ στο μενούΔημιουργία λύσεωνγια τη μεταγλώττιση του έργου.
Προβάλετε τη σελίδα .aspx με το πρόγραμμα περιήγησης και στη συνέχεια, βεβαιωθείτε ότι η σελίδα λειτουργεί έτσι μέχρι τώρα.
Αφού ορίσετε τοDataSourceη ιδιότητα για το παιδίRepeaterελέγχετε τον κώδικα HTML για τα δύοRepeaterτα στοιχεία ελέγχου (γονικό και εξαρτημένο) εμφανίζεται ως εξής:
Προσθέστε την ακόλουθη οδηγία σελίδας, στο επάνω μέρος της σελίδας:
<%@ Import Namespace="System.Data" %>
Στη σελίδα πίσω του κώδικα, αντικαταστήστε την παρακάτω γραμμή τηςPage_LoadΣυμβάν
//Insert code in step 4 of the next section here.
με τον ακόλουθο κώδικα:
//Create a second DataAdapter for the Titles table.
SqlDataAdapter cmd2 = new SqlDataAdapter("select * from titleauthor",cnn);
cmd2.Fill(ds,"titles");
//Create the relation between the Authors and Titles tables.
ds.Relations.Add("myrelation",
ds.Tables["authors"].Columns["au_id"],
ds.Tables["titles"].Columns["au_id"]);
Η ενέργεια αυτή προσθέτει τονΟι τίτλοιπίνακας με τοΤο DataSet, και στη συνέχεια προσθέτει τις σχέσεις μεταξύ των πινάκων συντάκτες και τίτλων.
Αποθηκεύστε και μεταγλώττιση της εφαρμογής.
Προβολή της σελίδας στο πρόγραμμα περιήγησης και, στη συνέχεια, βεβαιωθείτε ότι η σελίδα λειτουργεί μέχρι στιγμής. Τα αποτελέσματα θα πρέπει να εμφανίζεται ως εξής:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace NestedRepeater
{
public class NestedRepeater : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Repeater parentRepeater;
public NestedRepeater()
{
Page.Init += new System.EventHandler(Page_Init);
}
public void Page_Load(object sender, EventArgs e)
{
//Create the connection and DataAdapter for the Authors table.
SqlConnection cnn = new SqlConnection("server=(local);database=pubs; Integrated Security=SSPI ;");
SqlDataAdapter cmd1 = new SqlDataAdapter("select * from authors",cnn);
//Create and fill the DataSet.
DataSet ds = new DataSet();
cmd1.Fill(ds,"authors");
//Create a second DataAdapter for the Titles table.
SqlDataAdapter cmd2 = new SqlDataAdapter("select * from titleauthor",cnn);
cmd2.Fill(ds,"titles");
//Create the relation bewtween the Authors and Titles tables.
ds.Relations.Add("myrelation",
ds.Tables["authors"].Columns["au_id"],
ds.Tables["titles"].Columns["au_id"]);
//Bind the Authors table to the parent Repeater control, and call DataBind.
parentRepeater.DataSource = ds.Tables["authors"];
Page.DataBind();
//Close the connection.
cnn.Close();
}
private void Page_Init(object sender, EventArgs e)
{
InitializeComponent();
}
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
}
}
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:306154
(http://support.microsoft.com/kb/306154/en-us/
)
Πόση προσπάθεια καταβάλλατε για να χρησιμοποιήσετε αυτό το άρθρο;
Πολύ λίγη
Λίγη
Μέτρια
Μεγάλη
Πολύ μεγάλη
Πείτε μας για ποιον λόγο και με ποιον τρόπο θα μπορούσαμε να βελτιώσουμε αυτές τις πληροφορίες
Σας ευχαριστούμε! Τα σχόλιά σας θα μας βοηθήσουν να βελτιώσουμε το περιεχόμενο υποστήριξης. Για περισσότερες επιλογές βοήθειας, επισκεφτείτε την αρχική σελίδα της Βοήθειας και υποστήριξης.