Posts Tagged “bra”

Ibland 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.

Comments 1 Kommentar »

Det kan vara smidigt att lagra temporär data i form av sessionvariabler när en besökare surfar på din site. Kanske är det till och med att föredra över requests och querystrings? Varje besökare får ett unikt session-id.

//Deklarera sessionvariabel och tilldela whetever värde
Session["anvandarid"] = getLogin();

På vilken sida som helst kan du sen plocka fram “anvandarid” på följande sätt;

Label1.Text = Session["fornamn"].ToString();

En förutsättning är att sessionen fortfarande är aktiv, vilket den normalt är i 15-20 minuter.

Comments Inga kommentarer »

Det heter ju egentligen inte POST längre, request ska vara ett mer korrekt namn.

På din sida Default.aspx finns en Label och en Button. Sätt knappens postbackurl till sidan som ska ta emot variabeln;

//Sätt rätt pburl
btnSend.PostBackUrl = “Default2.aspx”;

//Sätt label till något
Label1.Text = “test”;

På Default2.aspx finns det inget mer än en Label, vars värde vi tilldelar i Page_Load() genom att fånga variabeln från förra sidan.

//Fånga upp variabeln
lblTest.Text = Request["Label1"];

Klart!

Comments Inga kommentarer »