Avatar billede MartinLauritsen Nybegynder
17. juni 2015 - 11:36 Der er 6 kommentarer og
1 løsning

xml count baseret på input xml/c#

lige et hurtig spørgsmål, jeg har nodePris fra et xml document som jeg gerne vil lave en count på baseret, på input værdien fra en textbox. alså hvis jeg skriver et antal i textbox så vil jeg gerne regne prisen ud automatisk, det vil sige hvis prisen er 10 kr og jeg skriver 10 i textboxen, så skulle prisen gerne være 100 kr. Vil gerne have hjælp til gøre det i C# måske med Xpath.
Avatar billede kalp Novice
18. juni 2015 - 00:37 #1
Du skal benytte .SelectSingleNode metoden og din xpath til at finde nodePris. Du kan herefter parse nodes innerText til et tal og det samme med dit input felt før du ganger dem.

Men det er nemt sagt:)

Hvor meget forstod du? Har du lavet noget kode?

Jeg skal nok give dig det fulde svar men du skal lige arbejde lidt for det:)
Avatar billede MartinLauritsen Nybegynder
18. juni 2015 - 09:39 #2
det her er det kode jeg har indtil videre, jeg kan godt få counten til at virke hvis jeg skriver et tal i antal, men kan ikke få det til at virke. Med det input field  som passer med det id jeg har givet det, jeg bruger int i3 til at definere id, så jeg kan hive data ud og sende til server. Længere nede i min kode. Ikke tage dig af min html styling  går lidt stærkt nogen gange :)
og som du kan se har jeg brugt xmlnodelist

XmlNodeList nodeListADDon = doc.SelectNodes("TourInfo/AddOns/AddOn");
        int i3 = 0;
        foreach (XmlNode node in nodeListADDon)
        {


            lblAddon.Text += @"<div class='table-responsive'><table style='min-height:50px; width:auto;padding:2px;class='table tabel-responsive'><tr><td style='text-align:left;'>" + "<input style='text-align: center;outline: 0;border-radius:10px; box-shadow: 2px 2px 1px #888888; height: 35px;  width: 50px;' placeholder='&nbsp;Antal' name='txtAddonAntal" + i3 + "' id='txtAddonAntal" + i3 + "'" + "data-role='none' type='text' /></td><td style='width:33px;'>&nbsp;</td><td style='width:140px;margin-top:13px;'>" + node["AddonText"].InnerText + "&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td style='width:50px; text-align:right;'>" + node["AddonPrice"].InnerText + "&nbsp;Kr</td><td style='width:180px;'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i style=' font-family: times, Times New Roman, times-roman, georgia, serif;font-size: 20px;line-height: 40px;letter-spacing: -1px;color: #444;margin: 0 0 0 0;padding: 0 0 0 0;font-weight: 500;'>" + node["AddonPriceOffersText"].InnerText + " " + node["AddonPriceOffers"].InnerText + "</i>&nbsp;&nbsp;" + "</td><td><input style='display:none; border:none; box-shadow: none;' type='text' value='" + node["AddonCode"].InnerText + "' name='txtAddonCode" + i3 + "' id='txtAddonCode" + i3 + "'></input></td></tr></table></div>";

         
            i3++;

            int ansver;
         
            int antal;
            int pris;
       
            antal = int.Parse("10");
            pris = int.Parse(node["AddonPrice"].InnerText);

            ansver = antal * pris;


            litPris.Text = ansver.ToString();
            litAntal.Text = Request.Form["txtAddonAntal"];


        }
Avatar billede MartinLauritsen Nybegynder
18. juni 2015 - 09:40 #3
den sidste litAntal har bare lige noget jeg har leget lidt med
Avatar billede kalp Novice
18. juni 2015 - 23:08 #4
Det er også en meget mystisk måde at skrive sin HTML på. Du smider det ind i en label eller sådan noget oO

men hvis jeg skal prøve at få det til at fungere som det er der så skal jeg lige vide om det er den her du har problemet med:

antal = int.Parse("10");

Dvs. den virker lige som den står der, men det virker ikke når du prøver at hente værdien fra et input felt?

Et gæt:

antal = int.Parse(Request.Form["txtAddonAntal"] " + i3);

men jeg ville ikke undre mig hvis det stadig ikke fungere.. i det du har vidst mig der kan jeg ikke se at der bliver lavet et postback. At man f.eks har trykket på en knap som submitter en form.
Avatar billede MartinLauritsen Nybegynder
19. juni 2015 - 07:29 #5
længere oppe i min kode har jeg en request som kører i min page load, og henter min data fra en server direkte ind på siden, og min html i en label eller en literal er bare en hurtig måde at gøre det på, er ikke så pæn kode stil men lærte jeg under min uddannelse. Men ville gerne undgå en knap, og lave en automatisk refresh metode såen lidt update panel agtigt.
Avatar billede MartinLauritsen Nybegynder
19. juni 2015 - 09:30 #6
jeg droppede min auto rfresh til at starte med, og lagde den i sin egen knap også virker det, du får tak for hjælpen læg et svar og du får point
Avatar billede kalp Novice
19. juni 2015 - 13:22 #7
:-)
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

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