Obwohl ASP.NET DataGrid als sehr gutes Tabellensteuerelement bekannt ist, können wir die Bearbeitungsfunktion von DataGrid nicht loben. Am Beispiel der Datenübermittlungsfunktion von DataGrid gibt es tatsächlich ein großes Problem: In DataGrid muss jede Zeile bearbeitet werden , müssen Sie eine Zeile übermitteln, was die sogenannte „Einzelzeilenbearbeitung, Einzelzeilenübermittlung“ ist. Wenn in diesem Fall zu viele Zeilen bearbeitet werden, ist die Bedienung für den Benutzer nicht nur umständlich, sondern führt auch zu häufigem Zugriff an den Server übertragen, was die Systemeffizienz erheblich verringert.
Natürlich gibt es eine wiederbelebte Lösung, die darin besteht, den zu bearbeitenden Inhalt auf andere Seiten zu übertragen und in TextBox zu bearbeiten. Wenn Sie jedoch sorgfältig darüber nachdenken, täuscht sich diese Methode nicht? Außerdem können wir beim Bearbeiten im Raster nicht immer die Tabulatortaste verwenden, um zwischen dem Raster (TextBox) zu wechseln Programmierer verschwenden viel Energie in die Entwicklung.
Wie können die oben genannten Probleme gelöst werden? Jetzt empfehle ich Ihnen ein inländisches DataGrid, das ich verwende: SmartGrid (kann von Sky Software Station heruntergeladen werden: http://www.skycn.com/soft/23547.html ). Ich verwende diese Steuerung schon seit langem Lassen Sie uns nun die mehrzeilige Übermittlungsmethode von SmartGrid besprechen: SmartGrid verfügt nicht über die Schaltflächenspalten in DataGrid. Stattdessen verfügt das gesamte Formular nur über eine Schaltfläche zum Senden, unabhängig davon, ob Sie eine Zeile oder mehrere Zeilen ändern , wie folgt Schauen wir uns einige Beispiele an:
Beispiel:
Das Bild oben ist ein besseres Beispiel für die Bearbeitung. Das Beispiel zeigt, dass Sie mehrere Zeilen oder eine Zeile bearbeiten und sie dann zusammen senden können.
Code:
Ändern Sie den Schaltflächencode:
private void btonSave_Click(object sender, System.EventArgs e)
{
this.DataGrid1.ReadOnly = false;//Geben Sie die Bearbeitung von
this.DataGrid1.AllowAdd = true;//Erlauben Sie das Hinzufügen von
this.DataGrid1.AllowDelete = true; //Löschen zulassen
}
Dieser Code ist ein einzigartiges Attribut von Smartgrid. Sie können verschiedene Funktionen zum Hinzufügen, Löschen, Bearbeiten
und Speichern des Schaltflächencodes festlegen.
private void Button2_Click(object sender, System.EventArgs e)
{
DataTable
t = (DataTable)this.SmartGrid1.DataSource;
t.Clear
();
this.sqlDataAdapter1.Fill(t);
.SmartGrid1.DataSource = t;
}
Dies dient dazu, die Daten als Ganzes an die Datenbank zu senden. Dieser Ansatz ist für große Datenmengen geeignet.
Es gibt auch eine Möglichkeit, die Daten
zeilenweise an den Server zu senden:
private void btonSave_Click(object sender, System. EventArgs e)
{
DataTable tb=(DataTable)this.SmartGrid1.DataSource;
SqlParameter[] columns=new SqlParameter[5];
foreach(DataRow dr in tb.Rows)
{
columns SqlParameter("@customerId", "+dr[1]+"");
Parameter[1
]=new SqlParameter("@companyName",""+dr[0]+"");
SqlParameter("@contactName", "+dr[2]+"");
Parameter[3]=
new SqlParameter("@contactTitle","+dr[3]+"");
SqlParameter("@address", "+dr[4]+"");
//
EamPd ist eine Funktion zum Ausführen gespeicherter Prozeduren
",Parameter);
}
}