Toon posts:

[asp.net]vraag over clientside berekening*

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi mede developers,

Ik ben nog niet zo heel erg lang bezig met een website die ik bouw in asp.net.
Erg leuke taal en wordt STEEDS LEUKER.

Ik ben nu echt beland by een deel dat niet heel erg simpel is, alhoewel ik denk dat het wel simpel kan.
Het gaat om het volgende.

Ik ben een bestel pagina aan het maken. en daarr wil ik het volgende dol graag in maken. Zodra iemand het textboxje in vuld voor de aantallen, moet de totaalprijs direct worden gewijzigd. Uiteraard moet ik een apparte functie daarvoor schrijven.Maar hoe spreek ik die functie aan?

Hoe moet ik die totaalprijs generen zonder dat ik op een knop moet drukken. Ik weet dat het kan maar hoe spreek ik die functie aan na het wijzigen van een textbox???

Tell me
thanks for helping

Overigens ik gebruik VB.net

Gr
Mcmally

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 07:51

mulder

ik spuug op het trottoir

Javascript

Move to W&G ;)

oogjes open, snaveltjes dicht


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12:42

Janoz

Moderator Devschuur®

!litemod

Idd... Da's meer client side, en dat hoort in WG

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
hmmm maar dat wil ik juist vermijde, ik zou het echt niet wete hoe ik het overignes met java script moet make. Daar ben ik dus echt een held op sokke.

Kan het niet met asp.net??

Verwijderd

nee, dan heb je een round trip met de server nodig, en dat wilde je niet...

Verwijderd

Topicstarter
? round trip met de server?
hihi het maakt me niet zoveel uit hoe het gebeurd, maar in iedere geval dat een klant het aantal van het gewenste produkt intypt en dat er dan op wat voor manier dan ook (zonder buttonklik) direct de totaalprijs eventueel veranderd.

pulldownmenutjes kan je ook iets aan klikken en dan kan je door middal van OnSelectedIndexChanged een functie aan spreken. Kan er niet ook zoiets als die waarde veranderd in een textbox?

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 19:03

crisp

Devver

Pixelated

onkeydown --> kan je ook meteen checken of het ingevoerde wel numeriek is
onblur --> wordt getriggerd bij het verlaten van een invoerveld

Intentionally left blank


Verwijderd

Topicstarter
Hoi crisp,

Ik probeer dat inderdaad.
Maar is dat javascript of asp.net?
Ik heb dit geprobeerd in me textbox code:
<asp:TextBox id="tbAantal" runat="server" Text="1" size="1" Onblur="bereken">

Dit werkt echt niet. De functie "bereken" die ik aan wil roepen die wordt helemaal niet uitgevoerd na het verlaten van het veld. Onkeydown idem.

hoe kan ik dit oplossing?

  • André
  • Registratie: Maart 2002
  • Laatst online: 12:21

André

Analytics dude

HTML:
1
2
3
4
5
6
7
8
<script language="javascript">
  function Bereken()
  {
    Bla;
  }
</script>

<input type="text" value="" onkeyup="Bereken">

Verwijderd

en anders doe je het toch gewoon in vbscript als je die taal wel kent
HTML:
1
2
3
4
5
6
7
<script language="vbscript">
  function Bereken()
    'Bla
  end function
</script>

<input type="text" value="" onkeyup="Bereken">


géén runat="server" in die scripttag duwen he, want 't is een clientside functie

[ Voor 30% gewijzigd door Verwijderd op 10-01-2003 12:20 ]


Verwijderd

Topicstarter
<script language="javascript">
<!-- function Bereken()
{ <%= totaalprijs %> = <%= aantal %> * <%= prijs %> }
//-->
</script>

<asp:TextBox id="tbAantal" runat="server" Text="1" size="1" MaxLength="4" Onblur="Bereken" Font-Names="Arial" ></asp:TextBox>

Dit probeer ik nu, maar het werkt niet, omdat er gezegd word dat bereken niet gedefinieerd is. javascript behoor je wel op deze manier neer te zette
die <%= ... %> dat zijn asp.net variable ook dat kan, zo kan je namelijk ook by voorbeeld ook een hyperlink make zoals dit:
<a href="inschrijf.aspx?resolutie=<%= resolutie %>&taalid=<%= taalid %>>

Wat heb ik nu precies verkeerd gedaan????
die error komt overigens linksonderin te staan met zo een uitroeptekentje

[ Voor 24% gewijzigd door Verwijderd op 10-01-2003 12:25 ]


  • André
  • Registratie: Maart 2002
  • Laatst online: 12:21

André

Analytics dude

onBlur="Bereken()"

  • cimbom
  • Registratie: Juni 2001
  • Laatst online: 26-04-2024

cimbom

Just Kidding

wat je fout hebt gedan is dat je aantal en totale prijs van de server haalt. prijs kan ik me voorstellen maar aantal en totale prijs zijn client side variabelen. Aantal moet je uit je editbox(of wat dan ook) halen die de gebruiker invult. Totaleprijs is dan ook een waarde voor een andere editbox neem ik aan.

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 07:51

mulder

ik spuug op het trottoir

Kijk eens in MSDN naar ClientID

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
<script language="javascript">
function Bereken
{ <%= totaalprijs %> = aantal * <%= prijs %> }
</script>
<input type="text" size="4" value="1" name="aantal" onblur="Bereken" MaxLength="4" >

zo doe ik het nu. Die totaal prijs stop ik in een Label. het is wel mogelijk om op deze manier gegevens op de hale, want gebruik het veder by meer dingen. Hij geeft geen asp errors, maar de enige foutmelding die hij geeft is Bereken is niet gedefinieerd.
Het is wel erg vreemde foutmelding want die staat gewoon gedefinieerd.

Erg vreemd iets.

  • André
  • Registratie: Maart 2002
  • Laatst online: 12:21

André

Analytics dude

Verwijderd schreef op 10 January 2003 @ 12:39:
maar de enige foutmelding die hij geeft is Bereken is niet gedefinieerd.
Zie mijn vorige post.

Verwijderd

Topicstarter
CLientid?
maar daar kan ik toch niet die aantal op halen en dan direct de totaal prijs berekenen???

Verwijderd

Topicstarter
Yogho
sorry je heb helemaal gelijk
hij roept die functie nu inderdaad goed aan. Sorry dat ik dat niet goed heb opgevat die vorige post.
Zoals ik al zei ben een debiel met het gebruike van die soort maniere van code schrijven.
hij zegt nu object not found.

Klopt myn formule wel?
de inpute heeft de naam aantal gekregen
vandaar aantal in me formule
<%= totaalprijs %> = aantal * <%= prijs %>

of als ik vanuit dat input boxje die functie aan roept heeft hij dan al die waarde?
Hoe roep ik die waarde dan op in die functie uit het input veld

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 07:51

mulder

ik spuug op het trottoir

Als jou Textbox in ASP.NET 'Totaal' is genoemd, zul je zien dat dit niet de naam is in de gegenereerde HTML. Je kunt die Textbox dan niet met die naam aanspreken in Javascript.
Misschien is dit duidelijker:
code:
1
2
3
4
functie Bereken()
{
  <%= totaalprijs.ClientID %>.value = <%= aantal.ClientID %>.value * <%= prijs.ClientID %>.value 
}

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
Klopt inderdaad Don Facundo dat je die id's van textboxe niet zomaar op die manier kan ophalen. door gewoon de naam te zette.Daar heb je gelijk in.

Ik probeer het echt op de manier zoals jij het doet.

Dan wordt het volgende gezegd.:
'ClientID' is not a member of 'String'

hier kan ik me ook wel wat in vinden. Weet dan wel barstens weinig af van clientid's. Laat staan wat ik weet wat het is. Msdn is er voor my ook niet echt duidelijker op.

SNIK wat een lastig stukje

Verwijderd

Topicstarter
raar
zie op veel voorbeelden op het internet ook gebruik maken van ClientID', maar waarom in godsnaam krijg ik dan die error??

Heeft iemand misschien een ideetje????

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 07:51

mulder

ik spuug op het trottoir

doe eens <% totaalprijs.ClientID %>, experimenteer gewoon wat

oogjes open, snaveltjes dicht


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 19:03

crisp

Devver

Pixelated

Don Facundo schreef op 10 januari 2003 @ 14:12:
doe eens <% totaalprijs.ClientID %>, experimenteer gewoon wat
Ga nou geen clientside en serverside door elkaar halen aub.
Om de waarde van een input clientside met JS uit te lezen kan je de volgende manier gebruiken ervan uitgaande dat je een form gebruikt en je veld name="aantal" heeft:
JavaScript:
1
document.forms['naamvanjeform'].element.['aantal'].value;

of kort door de bocht:
JavaScript:
1
document.naamvanjeform.aantal.value;

[ Voor 5% gewijzigd door crisp op 10-01-2003 14:25 ]

Intentionally left blank


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 07:51

mulder

ik spuug op het trottoir

crisp schreef op 10 January 2003 @ 14:24:
[...]

Ga nou geen clientside en serverside door elkaar halen aub.
Je hebt weinig keus als je met ASP.NET werkt lijkt me zo ;)

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
maar stop ik dan de uitkomst weer in een label / input????

ja sorry mense hihi maar me javascript kennis is ECHT NULL

Vind het echt tof van jullie dat jullie me wille helpe
THANKS

Verwijderd

Topicstarter
he lukt echt niet door die = weg te halen
want dan gaat hij het zien als een functie en dat moet niet
Pagina: 1