J'ai un GridView comme ceci:ASP.NET - Aucune donnée sur l'événement Gridview RowDeleting!
<asp:GridView ID="gvwStudents" runat="server"
AutoGenerateColumns="False" DataKeyNames="ID"
ShowHeader="False" onrowdeleting="gvwStudents_RowDeleting">
<Columns>
<asp:BoundField DataField="FirstName" />
<asp:BoundField DataField="LastName" />
<asp:BoundField DataField="Email" />
<asp:CommandField ShowDeleteButton="True" DeleteText="Remove" />
</Columns>
</asp:GridView>
Voici comment je crée mon DataTable, que le GridView est lié, afin que vous sachiez quelles sont les données que je traite:
private DataTable MakeStudentsTable()
{
DataTable students = new DataTable();
DataColumn ID = students.Columns.Add("ID", typeof(int));
ID.AutoIncrement = true;
DataColumn firstName = students.Columns.Add("FirstName", typeof(string));
DataColumn lastName = students.Columns.Add("LastName", typeof(string));
DataColumn email = students.Columns.Add("Email", typeof(string));
return students;
}
Pourquoi, oh, pourquoi n'y a-t-il aucune clé transmise dans EventArgs de l'événement RowDeleting? Je dois supprimer l'enregistrement du DataTable ADO.NET que je conserve dans l'état de session lorsque cet événement est déclenché.
Pourquoi cela ne fonctionne-t-il pas? Est-ce que DataKeys ne fonctionne que lorsque vous utilisez un contrôle DataSource?
Je pense que vous devez ajouter le tag "databinding" à cette question. BTW, je me suis cogné la tête sur exactement le même problème. –
Comment ajoutez-vous des élèves à votre table? Les données sont-elles renseignées dans votre table avant l'appel de la méthode Deleting (c'est-à-dire dans Page_Load)? – cjk