Avatar billede aero Nybegynder
10. november 2010 - 00:41 Der er 6 kommentarer og
1 løsning

tilføj x antal stk. og updater

PT har jeg dette

<% using(Html.BeginForm("AddToCart", "Cart")) { %>
        <%: Html.HiddenFor(x => x.ProductID) %>
        <%: Html.Hidden("returnUrl", Request.Url.PathAndQuery) %>
        <input type="submit" value="+ Tilføj til Kurv." />

Da kan jeg bare tilføje en ting til en kurv. via.
        public void AddItem(Product product, int quantity)
        {
            var line = lines
                .FirstOrDefault(x => x.Product.ProductID == product.ProductID);
            if (line == null)
                lines.Add(new CartLine { Product = product, Quantity = quantity });
            else
                line.Quantity += quantity;
        }

Hvordan kan jeg gøre så jeg har et Form felt med tallet 1, så hvis jeg trykker tilføj så fortsætter den som nu, men ellers ændre jeg tallet til evt. 3 og trykker tilføj, så er det selvf. 3 den skal kunne add via. AddItem.

hvordan kan jeg gøre det !?
Avatar billede bkp Nybegynder
10. november 2010 - 08:22 #1
Du kunne indføje følgende textbox i din form:
<asp:TextBox ID="txtAntal" runat="server" ></asp:TextBox>


I din C# kode, kunne du f.eks. hente den indtastede værdi med denne kode:
int antal;
if (int.TryParse(txtAntal.Text, out antal))
{
  AddItem(product, antal)
}
Avatar billede aero Nybegynder
10. november 2010 - 22:05 #2
jeg er med på den første del men ikke den anden del..
Avatar billede bkp Nybegynder
11. november 2010 - 18:06 #3
Jeg gik ud fra det er C#, men det er måske VB?

Men den anden del foregår i din codebehind (*.cs eller *.vb fil), f.eks. i din load event.
Avatar billede aero Nybegynder
11. november 2010 - 18:25 #4
det er C# men kan ikke få den til at vise feltet

Dette viser dog feltet

<%
using(Html.BeginForm("AddToCart", "Cart")) { %>
<input type="text" name="ints" value="1" />
<%

<%
: Html.HiddenFor(x => x.ProductID) %>: Html.Hidden("returnUrl", Request.Url.PathAndQuery) %><input type="submit" value="+ Tilføj til Kurv." />
<% } %>

Men så ved jeg ikke hvordan den kan tage det tal med som jeg skriver i feltet med videre.
Avatar billede bkp Nybegynder
11. november 2010 - 18:39 #5
Din input mangler en parameter (runat="server") så dens værdi overføres til din kode på serveren, og den har ingen id, hvilket jeg anbefaler, så prøv at ændre den til:
<input type="text" name="ints" id="ints" value="1" runat="server" />

Hvis du ændrer den med de 2 ting, så burde værdien sendes til serveren ved en submit, og du kan læse den i din codebehind ved at kalde dens id og tekst property:

int antal;
if (int.TryParse(ints.Text, out antal))
{
  AddItem(product, antal)
}

Det jeg gør med TryParse er at jeg forsøger at konvertere den returnerede tekst til en integer, og hvis det lykkedes at trække et nummer ud, så køres AddItem funktionen
Avatar billede aero Nybegynder
01. december 2010 - 08:16 #6
Vil du smide er svar BKP
Avatar billede bkp Nybegynder
01. december 2010 - 08:32 #7
Svar :-)
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
Kurser inden for grundlæggende programmering

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