Was ist der richtige Weg, um die DataBind() - Methode für die Steuerung zu implementieren, die einen Repeater darin haben?Richtiger Weg zum Implementieren der Datenbindung in ASP.NET
Dies sind Anforderungen für diese Steuerung (aber Sie können Ihnen anbieten, wenn er diese an etwas fehlen oder sind ein Overhead)
- Kontrolle einer Sammlung oder eine zählbare (Liste von Objekten, anonyme Objekte annehmen sollte, Wörterbücher oder Datentabelle)
- Datasource vollständig entkoppelt werden sollen, von der Steuerung (unter Verwendung von Daten * Feldeigenschaften festlegen Eigenschaften oder Schlüssel abgebildet werden sollen, wie Datavaluefield und Datatextfield in Dropdownlist)
- die Steuerung sollte gehen Sie einfach auf Viewstate. Wenn möglich, ViewState sollte überhaupt nicht verwendet werden, oder seine Verwendung sollte so niedrig wie möglich sein (speichern Sie einige ID oder so)
- Das Steuerelement sollte mit jedem Typ umgehen (Konvertierung mit ToString())
- Inside wenn möglich
ich meine Kontrolle wollen wie so zugänglich sein initialisiert werden von ItemDataBound Lage sein e.DataItem verwenden sollte:
var control = new Control();
control.DataDateField = "Date";
control.DataNameField = "FullName";
control.DataTextField = "Comment";
control.DataSource = data;
control.DataBind();
Und Datenelement kann eine der folgenden
seinListe der Wörterbücher (oder Tabellenzeilen)
var data = new List<Dictionary<string, string>>
{
new Dictionary<string, string>
{{"Date", "2009-03-15"}, {"FullName", "John Walker"}, {"Comment", "comment1"}},
new Dictionary<string, string>
{{"Date", "2009-03-12"}, {"FullName", "Chuck Norris"}, {"Comment", "comment2"}},
new Dictionary<string, string>
{{"Date", "2009-03-13"}, {"FullName", "Sergej Andrejev"}, {"Comment", "comment3"}}
};
Liste der anonymen Objekte
var data = new List<object>
{
new {Date = "2009-03-15", FullName = "John Walker", Comment = "comment1"},
new {Date = "2009-03-12", FullName = "Chuck Norris", Comment = "comment2"},
new {Date = "2009-03-13", FullName = "Sergej Andrejev", Comment = "comment3"},
};
Liste der ojekte
public class SampleClass
{
public object Date { get; set; }
public object FullName { get; set; }
public object Comment { get; set; }
public SampleClass(string date, string fullName, string comment)
{
Date = date;
FullName = fullName;
Comment = comment;
}
};
var data = new List<SampleClass>
{
new SampleClass("2009-03-15", "John Walker", "comment1"),
new SampleClass("2009-03-12", "Chuck Norris", "comment2"),
new SampleClass("2009-03-13", "Sergej Andrejev", "comment3"),
};
Datatable
var data = new DataTable();
data.Columns.Add(new DataColumn { DataType = typeof(DateTime), ColumnName = "Date" });
data.Columns.Add(new DataColumn { DataType = typeof(string), ColumnName = "FullName" });
data.Columns.Add(new DataColumn { DataType = typeof(string), ColumnName = "Comment" });
data.Rows.Add(new object[] { DateTime.Parse("2009-03-15"), "John Walker", "comment1" });
data.Rows.Add(new object[] { DateTime.Parse("2009-03-12"), "Chuck Norris", "comment2" });
data.Rows.Add(new object[] { DateTime.Parse("2009-03-13"), "Sergej Andrejev", "comment3" });
Im Grunde, was Ich möchte einen universellen Code für die Datenbindung, damit ich keine Zeit verschwenden muss, wenn ich jedes Mal, wenn ich ein neues Steuerelement erstelle, von Grund auf neu erstelle. Ich würde mich über Hinweise auf gute Praktiken, offizielle Führer und natürlich Ihre persönliche Erfahrung freuen. Hier
Ich möchte, dass meine Steuerung alle 4 Möglichkeiten akzeptiert, nicht nur eine dieser Optionen –