01. november 2007 - 20:10Der er
8 kommentarer og 1 løsning
GridView med DropDownList, hvad gør jeg galt ?
Hej,
Jeg roder med et GridView hvor jeg vil have smidt en DropDownList liste ind ... det virker sådan fint så langt jeg er nået, men er rundt ind i et problem ...
Da jeg kalder e.Cancel = true; Til sidst i OnRowEditing="gv_RowEditing" eventen ... bliver de CommandButton ikke lavet om til Cancel og Update for den row .... u stedet er de stadig "Edit" og "Delete" ... Det virker hvis jeg sætter "e.Cancel = false" men så er mine tekst felter og min DropDownListe tom ....
Tror snart jeg har prøvet alt ... men det lader ikke til at det er det CommandField object kan bruges til meget ...
Hvordan kan det løses ? Jeg er totalt lost her ...
Sig til hvis der skal bruges mere info ...
Kode:
cs filen .... protected void gv_RowEditing(object sender, GridViewEditEventArgs e) { // Response.Write("test ... "); int id = Syska.Misc.GetSelectedID(ddlShowGroup); if (id == 0) return;
Det er ikke nødvendigt selv at sætte controller visible=false/true, fordi når en række går i editmode, så vises EditItemTemplate (og de tilhørende knapper i CommandFiled, indtil du trykker update eller cancel. Det samme gælder knapperne.
For at set hvordan det virker, bare lav et nyt gridview med Enable editing = true, og lav en kolonne om til templatefield. Der vil du også kunne se, at du formentligt mangler en Bind (såfremt dine ændringer skal skrives tilbage til variablen).
Jeg laver 1 db udtræk til view ... jeg vil ikke til at hente mere her ...
Til edit mode, ville jeg lave et db udtræk, så jeg kunne skifte gruppe på elementerne ... men jeg kan ikke finde de controls som ligger i EditItemTemplate, derfor har jeg dem med i ItemTemplate ....
Tror jeg mangler lidt viden om hvordan den control virker ...
Jeg kan godt følge hvad du siger ... men det hjælper mig bare ikke.
Har du prøvet det jeg foreslog ? 1.lav en lille tabel med to kolonner : ID, mintext. 2. Lav en datasource som hiver tabellen ind, og som også genererer insert/update/delete 3. Opret et gridview som bruger datasourcen, og enable edit på det. 4. Lav minText-kolonnen om til template field.
Så har du et eksempel på hvordan man gør i din aspx mark up.
Jeg kan godt oprette, mixe, ændre etc. ikke der mit problem ligger. Hvis du læser mit spm igen ... så er det ikke et spm om at lave det. Jeg skal have en DropDownList når jeg er i EditMode på den pågældende row ... og det løser dit foreslag ikke.
Men da jeg ikke kan finde min DropDownList når jeg hopper over i EditMode har jeg sat Visable sat til false ... på ItemTemplate.
Linket giver samme foreslag til at finde mine controls som jeg allerede bruger: DropDownList ddl = GridView1.Rows[e.NewEditIndex].FindControl("ddl") as DropDownList;
Men ikke hvordan man finder dem som ligger i EditItemTemplate ...
Der findes ikke templates at vælge imellem at runtime, kun kontroller. Når dit gridview er i editmode, så er der kun en række som viser de kontroller som ligger i EditItemTemplate, mens alle andre rækker viser indholdet af ItemTemplate.
Hvis du forklarer præcist step-by-step (som til de tungnemme) hvad du ønsker at opnå, så kan jeg muligvis hjælpe dig, ellers er det lidt uproduktivt at gætte sig frem.
lukker ... blev ikke løst ... lavede det på en helt anden måde ...
// ouT
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.