Bien qu'ASP.NET DataGrid soit bien connu comme un très bon contrôle de table, nous ne pouvons pas faire l'éloge de la fonction d'édition de DataGrid. En prenant comme exemple la fonction de soumission de données de DataGrid, il y a en effet un gros problème : dans DataGrid, chaque ligne est modifiée. , vous devez soumettre une seule ligne, ce qu'on appelle « édition sur une seule ligne, soumission sur une seule ligne ». Dans ce cas, si trop de lignes sont modifiées, non seulement l'opération de l'utilisateur sera fastidieuse, mais elle entraînera également des accès fréquents. au serveur, réduisant considérablement l'efficacité du système.
Bien entendu, il existe une solution ressuscitée, qui consiste à transférer le contenu à éditer vers d'autres pages et à l'éditer dans TextBox. Cependant, si vous y réfléchissez bien, cette méthode ne vous trompe-t-elle pas ? De plus, lorsque nous modifions dans la grille, nous ne pouvons pas toujours utiliser la touche Tab pour passer d'une grille à l'autre (TextBox) si la réponse est Enter Events require. les programmeurs gaspillent beaucoup d'énergie en développement.
Comment résoudre les problèmes ci-dessus ? Maintenant, je vous recommande un DataGrid domestique que j'utilise : SmartGrid (peut être téléchargé depuis Sky Software Station : http://www.skycn.com/soft/23547.html ). Parlons maintenant de la méthode de soumission multi-lignes de SmartGrid : SmartGrid n'a pas de colonnes de boutons dans DataGrid. Au lieu de cela, le formulaire entier n'a qu'un seul bouton de soumission. Que vous modifiiez une ou plusieurs lignes, vous pouvez toutes les soumettre en même temps. , comme suit. Jetons un coup d'œil à quelques exemples :
Exemple :
L'image ci-dessus est un meilleur exemple d'édition. L'exemple montre que vous pouvez modifier plusieurs lignes ou une seule ligne, puis les soumettre ensemble.
Code :
Modifiez le code du bouton :
private void btonSave_Click(object sender, System.EventArgs e)
{
this.DataGrid1.ReadOnly = false;//Entrez la modification de
this.DataGrid1.AllowAdd = true;//Autoriser l'ajout de
this.DataGrid1.AllowDelete = true; //Autoriser la suppression
}
Ce code est un attribut unique de smartgrid. Vous pouvez définir diverses fonctions d'ajout, de suppression, de modification
et d'enregistrement du code du bouton :
private void Button2_Click (expéditeur d'objet, System.EventArgs e)
{
DataTable
t = (DataTable)this.SmartGrid1.DataSource;
this.sqlDataAdapter1.Update
(
t);
.SmartGrid1.DataSource = t;
}
Il s'agit de soumettre les données à la base de données dans son ensemble. Cette approche convient aux grandes quantités de données.
Il existe également un moyen de soumettre les données au
code du serveur ligne par ligne :
private void. btonSave_Click (expéditeur d'objet, System. EventArgs e)
{
DataTable tb=(DataTable)this.SmartGrid1.DataSource;
SqlParameter[]settings
=
new
SqlParameter[5];
SqlParameter("@customerId", ""+dr[1]+"");
paramètres
[1]=nouveau SqlParameter("@companyName",""+dr[0]+"");
SqlParameter("@contactName", ""+dr[2]+"");
paramètres[3
]=nouveau SqlParameter("@contactTitle",""+dr[3]+"");
SqlParameter("@address", ""+dr[4]+"");
//EamPd est une classe. Execute est une fonction pour exécuter des procédures stockées. Les paramètres sont les paramètres requis pour les procédures stockées
. ",paramètres);
}
}