Vous devez effectuer les opérations suivantes:
Vous devez persister DataTable que vous liez à la Gridview entre postbacks. Je suggère de le stocker dans l'état de session.
Session (PageID + "MainDT") = MyDataTable;
Gérer l'événement changé de texte zone de texte
Dans le gestionnaire d'événements, vous voulez charger le tableau de données hors session
DataTable MainDT = Session (DataTable) (PageID + "MainDT") ;
Ensuite, vous devez construire une nouvelle ligne de données. Mettez les valeurs que vous voulez dans votre nouvelle ligne dans ce DataRow. Comment créer un nouveau datarow avec un schéma correspondant à votre DataTable principal? Comme ceci:
DataRow DR = DT.NewRow(); // copie le schéma de DataTable à la nouvelle ligne
Ensuite, insérez la ligne dans la bonne position dans le tableau de données principal
Comment savez-vous quelle ligne pour insérer à? Il sera EditIndex + 1
DT.Rows.InsertAt(MyRow, RowToInsertAt);
du gridview Enfin, vous devez lier de nouveau votre Gridview
MyGridView.DataSource = MyDataTable;
MyGridView.DataBind()
Remarque - La colonne où vous devez montrer 1A ou 1B qui est habituellement un nombre doit être basé sur un champ varchar/texte. Ainsi, vous voudrez peut-être que votre SQL qui alimente votre DataTable principal fasse un rapide Convert (varchar (55), MyNumber) en tant que MyNumber dans son Select Select. De cette façon, lorsque vous remplissez votre DataRow supplémentaire (voir ci-dessus), vous pouvez simplement insérer une chaîne dans la colonne associée à MyNumber.
Remarque2 - Habituellement dans ces situations, je vais ajouter une icône "+". Lorsqu'elle est pressée, une grille de vue imbriquée, un répéteur ou un datalist est utilisé à la place d'une ligne personnalisée. Je trouve que brouiller des lignes supplémentaires dans un Gridview de la manière ci-dessus est difficile à maintenir, alors que les gridviews imbriquées ou les datalists ne sont pas trop mauvais une fois que vous l'avez fait une fois. Désolé, si la syntaxe est un peu loufoque, je vis dans un monde VB.NET.
C'est génial, qu'est-ce que vous avez essayé jusqu'ici qui n'a pas fonctionné? – R0MANARMY