[ASP.NET] LINQ to SQL met join naar gridview

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • whodares
  • Registratie: Februari 2009
  • Laatst online: 26-11-2023
Beste Tweakers

Ik ben aan het proberen 2 tabellen te joinen om dan uit beide tabellen informatie te halen. Deze informatie wil ik dan netjes tonen in een gridview. Nu wilt dit echter niet goed lukken.

Momenteel gebruik ik volgende code:

BLL
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
public List<String> GetGebouwenByDorpId(int dorpId)
    {
        try
        {
            List<String> lijstString = new List<String>();

            var lijst = (from gpd in db.GebouwPerDorps join g in db.Gebouws on gpd.GebouwID equals g.ID where (gpd.DorpID == dorpId) select new { g.Naam, gpd.Level });

            foreach (var a in lijst)
            {
                String mooieString = a.ToString();
                String[] woorden = mooieString.Split(',');
                int teller = 0;
                foreach(String b in woorden)
                {
                    int aantal = woorden.Count();

                    String c;
                    if ((teller % 2) == 0)
                    {
                        c = b.Substring(9);
                    }
                    else
                    {
                        c = b.Substring(9, 2);
                    }

                    lijstString.Add(c);
                    teller++;
                }
            }

            return lijstString;
        }
        catch (Exception e)
        {
            throw new Exception("Dit werkt niet");
        }
    }


En hier is dan mijn databinding in mijn DorpOverzicht.aspx.cs
code:
1
2
3
4
5
6
7
BLGebouwPerDorp blGebouwPerDorp = new BLGebouwPerDorp();
            List<String> gpd = new List<String>();

            gpd = blGebouwPerDorp.GetGebouwenByDorpId(dorp.ID);

            GridView1.DataSource = gpd;
            GridView1.DataBind();


Het resultaat is dat mijn gridview slechts 1 kolom heeft. De naam van de kolom is "Item" de rijen gaan als volgt opgevuld worden:

rij: gebouwnaam
rij: level
rij: gebouwnaam
rij: level
enzovoort.

Nu ben ik nog heel nieuw in asp.net en linq to sql. Ik zou dus verre van weten wat ik moet doen.
Ik ben van plan om later nog een knopje te zetten om een gebouw een level omhoog te laten gaan en een knop om een gebouw een level omlaag te laten gaan. Deze knopjes ben ik van plan erin te steken met de ingebouwde wizard van de gridview.
Nu heb ik al hulp gevraagd aan enkele collega's en het enige dat ik daar als reactie krijg is: "kijk eens op het internet". Nu denk ik toch wel dat ik lang genoeg gezocht heb en ben ten einde raad. Ik hoop dat jullie me hier kunnen helpen.

Als ik iets vergeten ben neer te zetten hier, vraag het gerust en ik zal zo snel mogelijk antwoorden.

BNet tag: whodares#1162


Acties:
  • 0 Henk 'm!

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 13:50
Je bind aan een lijst van strings, dan is het niet vreemd dat je maar 1 kolom krijgt. Verder is het een beetje vreemd dat verschillende soorten data de list gooit, terwijl dat (gok ik) kolommen moeten zijn. Probeer eens aan een datatable te binden, of een object dat netjes een rij in je view voor zou moeten stellen.

Roomba E5 te koop


Acties:
  • 0 Henk 'm!

  • whodares
  • Registratie: Februari 2009
  • Laatst online: 26-11-2023
Heb het uiteindelijk opgelost gekregen. Bleek het dat ik gewoon in mijn DorpOverzicht.aspx.cs de datasource op dorp.GebouwenperDorp moest zetten en dan in DorpOverzicht.aspx met templatefields kon werken.

Word ik geholpen net nadat ik het hier zet. Dat van de datatable ga ik zeker onthouden, ik vermoed dat ik dat 1 van de komende dagen nodig zal hebben.

Bedankt voor de reactie ;)

BNet tag: whodares#1162