Att få ut primärnyckels värde från en gridview (ASP.NET)
Postad av: Ludwig i Vanligt, tags: asp.net, bra, c#, gridview, microsoft, mjukvara, smidigt, utveckling, visual studio, webutvecklingIbland vill man kunna ta bort poster i en databas från en gridview. Här följer ett litet exempel på hur man kan göra för att få fram databasradens primärnyckelvärde för att veta vad man ska ta bort (ändra/uppdatera eller vad du vill göra). I “gridview” kontrollen på din aspx sida (ej codebehind) behöver du ange property för “DataKeyNames” (primärnyckeln i din datasource som du anger för gridviewen), välja vilka boundfields du vill visa samt säga åt gridden att rita upp “ta bort”-knappen för varje rad.
<asp:GridView ID=”gridCategories” runat=”server” DataKeyNames=”categoryId”>
<Columns>
<asp:BoundField DataField=”categoryName” HeaderText=”Kategori” />
<asp:BoundField DataField=”categoryDescr” HeaderText=”Beskrivning” />
<asp:CommandField ShowDeleteButton=”True” />
</Columns>
</asp:GridView>
Eventet för att tex ta bort heter gridView_RowDeleting()
Du måste hantera det på något sätt, tex i codebehind-filen
protected void gridCategories_RowDeleting(Object sender, GridViewDeleteEventArgs e)
{
//Ta bort raden
string categoryToDelete = gridCategories.DataKeys[e.RowIndex]["categoryId"].ToString();
korSqlCmd(”DELETE FROM kdb_categories WHERE categoryId = ‘” + categoryToDelete + “‘”);
}
//Rita om all data från databasen
showCategories();
}
Det intressanta i koden ovan är [e.RowIndex] som talar om vilken rad i gridden vi håller på med och ["categoryId"] som är en DataKeyName för gridviewen. (primärnyckeln i databasen är ju lämpligt att använda)
Måste också koppla eventet till funktionen i codebehind-filen på aspx sidan:
<asp:GridView ID=”gridCategories” runat=”server” DataKeyNames=”categoryId”
OnRowDeleting=”gridCategories_RowDeleting” >
<Columns>
<asp:BoundField DataField=”categoryName” HeaderText=”Kategori” />
<asp:BoundField DataField=”categoryDescr” HeaderText=”Beskrivning” />
<asp:CommandField ShowEditButton=”True” />
<asp:CommandField ShowDeleteButton=”True” />
</Columns>
</asp:GridView>
Enkelt och nästan identiskt för att redigera och uppdatera. Se alla gridview events man kan använda här.
Inlägg (RSS)