Avatar billede kak Nybegynder
27. juni 2007 - 16:01 Der er 14 kommentarer og
1 løsning

Brug af GridViewHelper i vb

Jeg vil gerne gruppere nogle rækker i et gridview, og jeg har fundet frem til dette link: http://www.agrinei.com/gridviewhelper/gridviewhelper_en.htm

De bruger GridViewHelper, men de viser det også i C# og mine sider bruger vb :-(

Jeg kan ikke umiddelbart bruge det samme og jeg kan ikke finde noget tilsvarende i vb.

Er der nogen der ved hvordan jeg løser det?
Avatar billede snepnet Nybegynder
27. juni 2007 - 19:13 #1
Det er ikke fordi det er så forfærdelig slemt at komme fra det ene til det andet - det første eksempel:

GridViewHelper helper = new GridViewHelper(this.GridView1);
helper.RegisterGroup("ShipRegion", true, true);
helper.RegisterSummary("ItemTotal", SummaryOperation.Sum, "ShipRegion");
helper.ApplyGroupSort();

Ville se sådan her ud i vb:
Dim helper As New GridViewHelper(Me.GridView1)
helper.RegisterGroup("ShipRegion", True, True)
helper.RegisterSummary("ItemTotal", SummaryOperation.Sum, "ShipRegion")
helper.ApplyGroupSort()

Altså så tæt på at være det samme som det næsten kan blive, men der kan være andre ting der er lidt værre... Der findes en del oversætter på nettet - du kan se en af dem her:
http://www.developerfusion.co.uk/utilities/convertcsharptovb.aspx

Mvh
Avatar billede kak Nybegynder
27. juni 2007 - 19:51 #2
Jeg havde også prøvet en oversætter, men det ser ud til, at GridViewHelper slet ikke findes i vb?! Jeg får fejlen, "Type GridViewHelper is not defined".
Avatar billede snepnet Nybegynder
27. juni 2007 - 22:06 #3
GridViewHelper er en klasse der ligger i det projekt du kan downloade, og den er skrevet i C#, men du kan godt mixe kode i samme projekt:
http://pietschsoft.com/Blog/Post.aspx?PostID=1287
Alternativt kan du lægge GridViewHelper i et projekt for sig og lave en reference til det.
Mvh
Avatar billede kak Nybegynder
28. juni 2007 - 20:40 #4
Det var noget bedre :-)

Jeg får dog en fejl, når jeg prøver at køre koden.....

Could not load file or assembly 'file:///C:\Documents and Settings\DV-NB1\ASPNET\Lokale indstillinger\Temp\9ktezcal.dll' or one of its dependencies. Den angivne fil blev ikke fundet.

Ved du hvad jeg skal kigge efter, for at finde fejlen?
Avatar billede snepnet Nybegynder
29. juni 2007 - 10:40 #5
Får du stadig fejlen?
Mvh
Avatar billede kak Nybegynder
29. juni 2007 - 11:01 #6
Ja, det fejler stadig. Men der går lang tid når siden loades, før den fejler. Så det minder lidt om en timeout.
Avatar billede kak Nybegynder
30. juni 2007 - 13:12 #7
Jeg får en anden fejl frem nu (det er stadig med den originale kode, så jeg ved ikke hvorfor det har ændret sig??)...

Exception Details: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: index

Line 595: newRow.Cells[colIndex].Text = this.GetFormatedString(s.FormatString, this.GetColumnFormat(GetColumnIndex(s.Column)), s.Value);

Source File: c:\Inetpub\wwwroot\App_Code\cs_code\GridViewHelper.cs    Line: 595

Har du nogen idéer til den fejl?
Avatar billede snepnet Nybegynder
01. juli 2007 - 08:15 #8
Hov - jeg kan se at der er røget en post her....
Er det i forbindelse med at du opretter en ny record via testsiden at du får fejlen?
(og betyder det så at du får siden vist som forventet - med data og det hele).
Mvh
Avatar billede kak Nybegynder
01. juli 2007 - 09:49 #9
Nej, jeg opretter ikke en ny record. Jeg kører blot dette her:

Dim helper As New GridViewHelper(Me.GridView1)
helper.RegisterGroup("ShipRegion", True, True)
helper.RegisterSummary("ItemTotal", SummaryOperation.Sum, "ShipRegion")
helper.ApplyGroupSort()

.... på et gridview, og så sker det. Jeg har naturligvis ændret "ShipRegion" pg "ItemTotal" til nogle værdier der eksisterer.
Avatar billede snepnet Nybegynder
01. juli 2007 - 12:02 #10
Hvordan ser din markup ud?
Avatar billede kak Nybegynder
01. juli 2007 - 15:26 #11
"markup"??
Avatar billede snepnet Nybegynder
02. juli 2007 - 09:41 #12
Ja - din "html"... <asp:GridView id="..." runat="server" - den slags.
Mvh
Avatar billede kak Nybegynder
02. juli 2007 - 10:31 #13
Det er her....

        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns=true DataSourceID="sqlDataSource1" DataKeyNames="orderid" OnDataBound="setGrid">
      <Columns>
                <asp:CommandField ShowEditButton=false />
      </Columns>
        </asp:GridView>

Dataene er lidt forskellige, så det der sker, er at en funktion udvælger data via sqlDatasource1 og databinder.

Derefter kører "setGrid", og det er inde fra setGrid, at jeg vil køre den nye kode.

Jeg har dog fundet en anden løsning. Jeg laver et gennemløb gridviewet og laver en ekstra kolonne med totalværdier. Det er egentlig blot det jeg har brug for, så det er fint nok. Hvis du har en mulig løsning, så kan jeg prøve det, men eller må du gerne oprette et svar, så du kan få point for din hjælp!
Avatar billede snepnet Nybegynder
02. juli 2007 - 10:51 #14
Det er tænkeligt at du skal oprette kolonnerne - på samme måde som de har gjort i eksemplet - for at det fungerer.
Mvh
Avatar billede kak Nybegynder
02. juli 2007 - 11:07 #15
Ok. Men det er et "dynamisk" gridview, da der kan dannes forskellige kolonner alt efter hvad man vil vise. Så det kan jeg ikke gøre på forhånd. Men pyt... jeg har jo en anden løsning.

Tak for hjælpen!
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