Avatar billede kxh Nybegynder
28. december 2005 - 10:52 Der er 14 kommentarer og
1 løsning

Gridview + opret kolonner og databind i runtime

Hej

Jeg har en webside hvor brugeren kan vælge forskellige rapporter udfra en dropdownbox, jeg vil så gerne udfra hvilke rapport der er valgt, opsætte mit gridview til de enkelte felter, man kunne
selvfølgelig bruge AutoGenerateColumns men jeg vil hellere selv definere størrelse, højde mv, men hvordan, nogen der har nogle eksempler, eller ved hvor på nettet der findes en guide.

// Kim
Avatar billede agertoft Nybegynder
28. december 2005 - 14:44 #1
Du kunne jo have flere forskellige GridViews alt efter hvor mange skabeloner til rapporter, du skal bruge. Alt efter hvad brugeren så har valgt, kan du lave DataBind() på det grid, som nu passer til formålet... vil det ikke løse problemet?
Avatar billede dr_chaos Nybegynder
28. december 2005 - 16:21 #2
du kan bare tilføje kollonner runtime på denne måde.

ButtonField bf = new ButtonField();
            bf.ButtonType = ButtonType.Button;
            bf.CommandName = "Rediger";
            bf.Text = "Rediger";
            bf.HeaderText = "Rediger";
            bf.HeaderStyle.BackColor=System.Drawing.Color.FromName("#D4DBE2");
            Getgridview.Columns.Add(bf);
Avatar billede dr_chaos Nybegynder
28. december 2005 - 16:22 #3
derefter sætter du
Getgridview.Datasource og kalder Getgridview.Databind();
Avatar billede kxh Nybegynder
28. december 2005 - 18:46 #4
Hej dr Chaos

Du havde lige den løsning jeg er ude efter, så smid et svar så skal du få dine velfortjente point :-)
Jeg bruger så BoundField for de kolonner som skal indeholde data.

// Kim
Avatar billede kxh Nybegynder
28. december 2005 - 19:40 #5
Hej dr. Chaos

Er der nogen gylden måde for hvordan man kan styre bredden af de enkelte kolonner, jeg kan se at der er en width og wrap, men jeg synes at den selv bestemmer lige meget hvad man gør, jeg har et felt som indeholder mange data, og jeg vil gerne have at det wrappes så det ikke optager alt pladsen i bredden.
Avatar billede dr_chaos Nybegynder
28. december 2005 - 19:43 #6
svar
jeg har ikke prøvet mig så meget frem med width.
tjekker det senere.
Avatar billede dr_chaos Nybegynder
29. december 2005 - 09:06 #7
du kan godt sætte width og wrap på en column men det bliver kun effektueret hvis der er et mellemrum i det tekst du viser.
Avatar billede kxh Nybegynder
29. december 2005 - 09:46 #8
Hej

Så kan det være jeg evt. kan lave noget smart i mit SELECT så jeg får delt linien op i flere felter evt.

// Kim
Avatar billede dr_chaos Nybegynder
29. december 2005 - 09:49 #9
ja eller du kan behandle strengen i code behind og indsætte et mellem rum for hvert 20. tegn eller lignende.
Avatar billede kxh Nybegynder
29. december 2005 - 10:20 #10
Hej dr chaos

dvs. at du vil oprette det antal kolonner der skal bruges, og efter databind lave en løkke der behandler data i den kolonne der har mange tegn.
Avatar billede dr_chaos Nybegynder
29. december 2005 - 10:26 #11
nej jeg ville databinde og have et databound event på gridviewet og så tage cellernes tekst felt under behandling der.
Avatar billede kxh Nybegynder
29. december 2005 - 10:28 #12
Okay kan du give et eksempel på hvordan du vil lave redigering af teksten, jeg var inde på en noget mere 'kedelig' måde at gøre det på må jeg tilstå
Avatar billede dr_chaos Nybegynder
29. december 2005 - 10:37 #13
en generisk en
protected void GridView_DataBound(object sender, EventArgs e)
    {
    GridView v = (GridView)sender;
       
        foreach (GridViewRow g in v.Rows)
        {
                if (g.Cells[0].Text.Length > 20)
                {
                    for(int i = 20; i< g.Cells[0].Text.Length ;i = i+20)
                    {
                        g.Cells[0].Text.Insert(i, " ");

                    }
                }
}
}
Avatar billede kxh Nybegynder
29. december 2005 - 10:41 #14
Hej

Jeg takker for hjælpen, nu kan jeg endelige styre layoutet af grid så det ikke bliver
så uoverskueligt, som det ellers nemt kan blive ved at autogenerate.

// Kim
Avatar billede dr_chaos Nybegynder
29. december 2005 - 10:44 #15
helt enig :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester