11. maj 2005 - 09:45Der er
7 kommentarer og 1 løsning
kalde editcommand fra knap ude på form
vi tager lige det hele fra starten :)
jeg har et datagrid der henter noget data fra et dataset. jeg har tilføjet nogle datafelter jeg vil redigere og så et antal knapper: edit, delete, activate og deactivate.
når man så har trykket på edit knappen vil jeg have at alle de andre knapper forsvinder, og update samt cancel fremkommer.
hvordan gør jeg det? problemet nu og her er at jeg mangler at finde ud af hvordan jeg "fremprovokerer" update og cancel knappen det er ikke nok at sætte itemindex på datagridded til feltets id.
hmm.... nu ved jeg ikke helt hvordan du har lavet det, men den slags er indbygget i griddet. hvis du tilføjer sådan en her : <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Update" CancelText="Cancel" EditText="Edit"></asp:EditCommandColumn>
og håndterer respektive events fra griddet f.eks.:
eventsne hooker du op på sådan her : this.DataGrid1.CancelCommand += new DataGridCommandEventHandler(this.DataGrid1_CancelCommand); this.DataGrid1.EditCommand += new DataGridCommandEventHandler(this.DataGrid1_EditCommand); this.DataGrid1.UpdateCommand += new DataGridCommandEventHandler(this.DataGrid1_UpdateCommand);
(hvis du bruger visual studio .net behøver du ikke skrive noget selv - så kan du lave det hele fra hhv. griddets propertybuilder (højreklik på griddet i designeren, og klik på property builder), og fra designeren på normal vis. mvh
hvis du gerne vil have ALLE andre knapper til at forsvinde tror jeg næsten det nemmeste for dig er, at "rette dit grid ind" i en overskrivning af prerender :
det vil i den forbindelse være det nemmeste for dig, hvis du laver knap-kolonner om til templatecolumns (kan du også gøre fra griddets property builder). du kan så "finde" de respektive knapper med FindControl som vist, hvilket er lidt lettere end at fiske dem pr. index som fx:
Button btn = (Button)dgi.Cells[x].Controls[y];
ovenstående er bare et eksempel ... det fjerner jo ikke alle knapperne, men du kunne så lave noget i denne stil :
if(dgi.ItemType == ListItemType.Item || dgi.ItemType == ListItemType.AlternatingItem) { // hvad der nu skal for at linierne er ok }
vil du have et svar fra mig ? - hvis det er tilfældet får du da et her :o) mvh
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.