Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[C#] Variable gebruiken in foreach loop

Pagina: 1
Acties:

  • Domih
  • Registratie: Februari 2011
  • Laatst online: 23-09 14:40
Goedemorgen! Ik zit helaas met een probleempje,

(titel moet zijn "[C#/HTML/JS] Variable gebruiken in foreach loop")
Het is een beetje lastig uit te leggen, maar ik heb een recursieve functie die een UL genereerd, en een stukje JS die er een treechart van maakt. Dat werkt heerlijk!

Wat ik nu wil, is in elke node van deze treechart een linkje waarmee ik een nieuwe node kan aanmaken, en ik wil data van die node meenemen naar de div die dan geshowed wordt.

Dit is de treechart zoals ik hem wil:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@helper OrgTree(IEnumerable<OrgChart.frm_connection_meter> nodes, int? ParentId)
{
    if(nodes.Any(n => n.ParentConnectionMeterID == ParentId))
    {
        <ul>
            @foreach (var node in nodes.Where(n => n.ParentConnectionMeterID == ParentId))
            {
                <li>
                      **data die in de node staat**
                      @{MeterNumber = node.MeterNumber;}
                      <a id="popup" onclick="div_show()">Add a new node</a>
                </li>
            }
        </ul>
    }
}

En dit is de div hoe ik hem wil:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
            <div id="abc">
            <div id="popupContact">
                <form action="#" id="form" method="post" name="form">
                    <img id="close" src="~/Images/close.gif" onclick ="div_hide()">
                    <h2>Add a new meter</h2>
                    <hr>
                    @MeterNumber;
                    <input id="Description" placeholder="Description" type="text">
                    <input id="MeterNumber" placeholder="Meter number" type="text">
                    <a href="javascript:%20check_empty()" id="submit">Send</a>
                </form>
            </div>
        </div>

Ik krijg in de div de melding "the name MeterNumber does not exist in the current context"
Iemand een idee of en hoe dit mogelijk is?

Alvast bedankt!!

Edit: Ik heb al geprobeerd de div in de node te zetten, zodat hij die steeds opnieuw genereerd, maar dan werkt het stukje JS helaas niet meer

[ Voor 6% gewijzigd door Domih op 20-10-2014 12:48 ]

Apple Carplay/Android Auto voor BMW/MINI/Audi/Mercedes: Nextgearmedia.nl


  • Martindo
  • Registratie: November 2010
  • Laatst online: 24-10 11:15
De variabele MeterNumber is nog niet geïnitialiseerd op dat moment. Heb je al met breakpoints gekeken waar het fout gaat?

Misschien als je MeterNumber voordat de loop begint even declareert en op een standaardwaarde zet dat het misschien werkt?

[ Voor 62% gewijzigd door Martindo op 20-10-2014 13:00 ]


  • Domih
  • Registratie: Februari 2011
  • Laatst online: 23-09 14:40
Martindo schreef op maandag 20 oktober 2014 @ 12:58:
De variabele MeterNumber is nog niet geïnitialiseerd op dat moment. Heb je al met breakpoints gekeken waar het fout gaat?

Misschien als je MeterNumber voordat de loop begint even declareert en op een standaardwaarde zet dat het misschien werkt?
Hallo,

Zo gaat het helaas niet werken. Wat ik eigenlijk nodig heb is dat hij de variable MeterNumber verandert in de nummer van de meter zodra ik op die link met popup klik.

Elke node in de tree gebruikt dezelfde div, dus als het wel zou werken, zal hij elke keer degene gebruiken die als laatste opgenomen was in de tree (had het eerder al geprobeerd met viewbag)

Apple Carplay/Android Auto voor BMW/MINI/Audi/Mercedes: Nextgearmedia.nl


  • Martindo
  • Registratie: November 2010
  • Laatst online: 24-10 11:15
Maar als je de variabele MeterNumber wilt gebruiken moet deze eerst gedeclareerd worden?

En heeft een element uit nodes wel de variabele MeterNumber?

[ Voor 26% gewijzigd door Martindo op 20-10-2014 13:25 ]


  • Domih
  • Registratie: Februari 2011
  • Laatst online: 23-09 14:40
Martindo schreef op maandag 20 oktober 2014 @ 13:22:
Maar als je de variabele MeterNumber wilt gebruiken moet deze eerst gedeclareerd worden?
Ohh op die fiets,

Ik heb boven mijn foreach loop de var declared, ik dnek dat nu het probleem is dat het een local variable is, en geen global.. Geen idee hoe ik dit kan veranderen :/

Apple Carplay/Android Auto voor BMW/MINI/Audi/Mercedes: Nextgearmedia.nl


  • Martindo
  • Registratie: November 2010
  • Laatst online: 24-10 11:15
Je doet node.MeterNumber, dat betekent dat de variabele binnen de scope van het element node moet bestaan. Dus daarom ook mijn vraag of binnen node er een variabele MeterNumber bestaat.

[ Voor 30% gewijzigd door Martindo op 20-10-2014 13:35 ]


  • Domih
  • Registratie: Februari 2011
  • Laatst online: 23-09 14:40
hmm.. En hoe kan ik ervoor zorgen dat ik deze buiten die scope kan gebruiken? Heb nu dit namelijk:
code:
1
<a id="popup" onclick="div_show(){@{MeterNumber = node.MeterNumber}}">Add a new meter</a>


Dan zou hij de variable van de node moeten pakken van de node waar ik op klik.. Denk ik

Apple Carplay/Android Auto voor BMW/MINI/Audi/Mercedes: Nextgearmedia.nl


  • Martindo
  • Registratie: November 2010
  • Laatst online: 24-10 11:15
Ja, maar wat ik bedoel te zeggen is dat het object node wel een variabele genaamd MeterNumber moet bevatten. Want anders gaat het inderdaad niet werken en krijg je de foutmelding die je hebt. ;)

[ Voor 27% gewijzigd door Martindo op 20-10-2014 13:56 ]


  • epic007
  • Registratie: Februari 2004
  • Laatst online: 17-11 15:31
kan je hem niet meegeven aan je div_show()?

JavaScript:
1
div_show(meternumber)
Pagina: 1