Jeg har lavet et GridView med GridView1.DataKeyNames = new String[] { "koeberID" };
Jeg har en delete-knap i Grid'et, men når jeg trykker på den så retunerer GridView1.SelectedDataKey.Value null. Det kan jeg på sin vis godt forstå da man jo ikke har selected nogen række, men hvordan får jeg så min datakey hentet frem? Jeg kunne godt finde ud af det i .net 1.1 :-)
En lille ekstra ting: Hvorfor skal DataKeyNames skrives som et array? Det virker da helt i skoven.
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "Edit") { int index = Convert.ToInt32(e.CommandArgument); int id = (int)GridView1.DataKeys[index].Value; Response.Redirect("wfmManipulateDummy.aspx?Dummyid=" + id); }
if (e.CommandName == "Delete") { int index = Convert.ToInt32(e.CommandArgument); int id = (int)GridView1.DataKeys[index].Value; OleDbConnection conn = new OleDbConnection(ConfigurationManager.ConnectionStrings["SEKT"].ConnectionString); OleDbCommand cmd = new OleDbCommand("delete * from dummy where dummyid=" + id, conn); conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); doGrid(); } }
Hvordan kan jeg bruge mere end ét datakeyname? DataKeys[index] retunerer vel kun én værdi?
du kan bruge int id = (int)GridView1.DataKeys[index].Values["id"] i Values kan du bruge enten index eller string med datakeyname.
For en delete kan du også bruge
protected void GridView1__Delete(object sender, GridViewDeleteEventArgs e) { int index = e.RowIndex } Der skal du bare vælge show delete button på gridviewet i et commandfield.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.