[ASP.NET]formulier binnen een pannel

Pagina: 1
Acties:

  • Folkert
  • Registratie: September 2001
  • Laatst online: 10-07 07:58
Ik heb een testpagina gemaakt om asp panels/linkbuttons uit te proberen.:
Hieronder mijn resultaat:
http://www.vanmillprojecten.nl/content/test.aspx

De panels werken prima i.c.m. de linkbuttons. Probleem is echter dat er in het formulier ook validators zijn geplaats. Op de een of andere manier luistert de pagina niet naar de validator bij het submitten en wordt het formulier gewoon gesubmit zonder te de validators af te gaan. Wat doe ik verkeerd?
:?

Hier is mijn code:
ASP.NET:
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<%@ Page Language="vb" %>
<%@ Import Namespace="System.Web.Mail" %>

<script runat="server">

Sub btn_Click(sender as Object, e as System.EventArgs)
    If (Page.IsValid) Then
        melding.text = "Het formulier is correct verstuurd"
    End if
End Sub

Sub Page_Load(s as object, e as eventargs)
panelPage1.Visible = true
panelPage2.Visible = false
panelPage3.Visible = false
End Sub 

Sub Page1Visible(s as object, e as eventargs)
panelPage1.Visible = true
panelPage2.Visible = false
panelPage3.Visible = false
End Sub

Sub Page2Visible(s as object, e as eventargs)
panelPage1.Visible = false
panelPage2.Visible = true
panelPage3.Visible = false
End Sub

Sub Page3Visible(s as object, e as eventargs)
panelPage1.Visible = false
panelPage2.Visible = false
panelPage3.Visible =true
End Sub

</script>
<html>
<head>
<title>paneltest</title>
</head>
<body>
<form runat="server">
<p>
<asp:linkbutton id="LinkButton1" runat="server" onclick="Page1Visible">Pagina 1</asp:linkbutton>
<asp:linkbutton id="LinkButton2" runat="server" onclick="Page2Visible">Pagina 2</asp:linkbutton>
<asp:linkbutton id="LinkButton3" runat="server" onclick="Page3Visible">Pagina 3</asp:linkbutton>
<p>
<asp:panel id="panelPage1" runat="server">Pagina 1</asp:panel></p>
<p>
<asp:panel id="panelPage2" runat="server">Pagina 2</asp:panel></p>
<p>
<asp:panel id="panelPage3" runat="server">Pagina 3<br>
    <table width="400" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td><asp:label ID="LblNaam" runat="server" Text="Naam"></asp:label></td>
        <td><input name="naam" type="text" id="naam" runat="server">
          <asp:requiredfieldvalidator ControlToValidate="naam" ID="ReqFieldNaam" 
          EnableClientScript="true" Display="Dynamic" ErrorMessage="Naam invullen" 
          runat="server"></asp:requiredfieldvalidator></td>
      </tr>
      <tr>
        <td><asp:label ID="LblAdres" runat="server" Text="Adres"></asp:label></td>
        <td><input name="adres" type="text" id="adres" runat="server">
          <asp:requiredfieldvalidator ControlToValidate="adres" ID="ReqFieldAdres" 
          EnableClientScript="true" Display="Dynamic" ErrorMessage="Adres invullen" 
          runat="server"></asp:requiredfieldvalidator></td>
      </tr>
      <tr>
        <td><asp:label ID="LblTelefoon" runat="server" Text="Telefoon"></asp:label></td>
        <td><input name="telefoon" type="text" id="telefoon" runat="server">
          <asp:requiredfieldvalidator ControlToValidate="telefoon" ID="ReqFieldTelefoon" 
          EnableClientScript="true" Display="Dynamic" ErrorMessage="Telefoon" 
          runat="server"></asp:requiredfieldvalidator></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><asp:button ID="BtnSubmit" runat="server" Text="Verstuur" OnClick="btn_Click"/></td>
      </tr>
    </table>
</asp:panel>
<asp:label ID="melding" runat="server"></asp:label>
</form>
</body>
</html>

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Probeer anders eerst even te kijken of de validator controls serverside wel werken. Dan zit het probleem mischien in de client side script oid.

Als ik even zo snel kijk zie ik niet meteen wat er fout zou moeten zijn.
offtopic:
Waarom maak je trouwens geen gebruik van CodeBehind?

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Folkert
  • Registratie: September 2001
  • Laatst online: 10-07 07:58
Codebehind kan ook wel maar ik wil eigenlijk eerst dit probleem oplossen. De controls werken wel... tot het moment dat ik deze binnen een panel plaats. Het valt allemaal binnen hetzelfde form natuurlijk aangezien je maar een form (runat server) kan plaatsen op een .net pagina.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Werken ze ook serverside niet meer dan?

dus met de IsValid property geloof ik?

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • sander_g
  • Registratie: Juli 2002
  • Laatst online: 12:51
Ik heb je code even gekopieert, maar de pagina werkt prima (lokaal).

Het lijkt er op dat je client-scripts niet beschikbaar zijn voor validatie.

<script language="javascript" src="/aspnet_client/system_web/1_1_4322/WebUIValidation.js"></script>

Controleer eens of dat WebUIValidation.js wel op de server is geplaatst.

Garmin Fēnix 7 Pro | https://www.strava.com/athletes/30783039


  • Folkert
  • Registratie: September 2001
  • Laatst online: 10-07 07:58
Hm, raar want bij mij lokaal doet het ook niet wat het moet doen. Lokaal heb ik wel de validators maar als ik dan zonder te submitten door wil gaan naar een ander panel, gebeurt er niks. Hij blijft het formulier submitten en gaat dus niet naar panel 1 of 2.
de scripts zijn overig wel op de server geinstalleerd aangezien ze werken als ik ze niet in een panel plaats.
Zie pagina:http://www.vanmillprojecten.nl/content/informatie.aspx

[ Voor 28% gewijzigd door Folkert op 24-07-2003 13:10 ]


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
In je eventhandlers om naar de andere panels te gaan zie ik ook geen Controle staan of je page valid is. Dus volgens mij ligt het nog stees aan je client side script.

[ Voor 80% gewijzigd door Woy op 24-07-2003 13:13 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Folkert
  • Registratie: September 2001
  • Laatst online: 10-07 07:58
Die staan in mijn linkbuttons:
ASP.NET:
1
<asp:linkbutton id="LinkButton1" runat="server" onclick="Page1Visible">Pagina 1</asp:linkbutton> 

met een onclick event.
En dit event ziet er als volgt uit:
ASP.NET:
1
2
3
4
5
Sub Page1Visible(s as object, e as eventargs)
panelPage1.Visible = true
panelPage2.Visible = false
panelPage3.Visible = false
End Sub

  • Folkert
  • Registratie: September 2001
  • Laatst online: 10-07 07:58
Maar bij de verschillende panels moet hij helemaal niet kijken of de page valid is. Dat moet alleen maar op de btn_click event komen. Lijkt me... Het blijft natuurlijk maar een feitelijke pagina....

  • sander_g
  • Registratie: Juli 2002
  • Laatst online: 12:51
Folkert schreef op 24 July 2003 @ 13:09:
de scripts zijn overig wel op de server geinstalleerd aangezien ze werken als ik ze niet in een panel plaats.
Zie pagina:http://www.vanmillprojecten.nl/content/informatie.aspx
Zeker raar. Het is me niet helemaal duidelijk waarom, maar op de pagina die jij opgeeft, krijg je een Postback bij het versturen, die pagina wordt dus wel gesubmit en dan komen de foutmeldingen te voorschijn. Je voorbeeld dat ik lokaal heb staan doet helemaal geen postback, die validatie wordt immers client-side afgehandeld.

Het kan zijn dat IIS .js-bestanden blockt, maar wanneer je eenvoudigweg

http://www.vanmillproject...1_4322/WebUIValidation.js

in de browser intikt, kan het bestand niet gevonden worden. Op een normaal ingerichte webserver wordt na het intikken van deze url het bestand ter download aangeboden. Ik zou dus toch naar die file kijken.

Garmin Fēnix 7 Pro | https://www.strava.com/athletes/30783039


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

In het kader van gokken; wat doet die als je zelf hard Page.Validate oproept?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Folkert
  • Registratie: September 2001
  • Laatst online: 10-07 07:58
gorgi, wat bedoel je met het hard oproepen van Page.Validate???

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

http://willem.yoursite.nl/gorgi_19 :+
wat bedoel je met het hard oproepen van Page.Validate???
[/quote]
Visual Basic .NET:
1
2
3
4
5
6
Sub btn_Click(sender as Object, e as System.EventArgs)
    Page.Validate()
    If (Page.IsValid) Then
        melding.text = "Het formulier is correct verstuurd"
    End if
End Sub

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Folkert
  • Registratie: September 2001
  • Laatst online: 10-07 07:58
Heb ik net geprobeerd maar resultaat is hetzelfde. Ik heb hier lokaal ook een ander resultaat wat ook raar is. Lokaal nemen de linkbuttons de submit over van het formulier terwijl deze totaal andere events aansturen en alleen maar voor de panels worden gebruikt. Toch willen ze het formulier submitten met als gevolg dat de validators gaan werken....
Maar als ik de pagina upload, wordt er totaal niet gelet op de validators. Kan het misschien liggen aan een andere .NET versie? Lokaal 1.1 en op de server draait naar mijn idee 1.0.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Tuurlijk submitten je LinkButton's je Form. Je LinkButton's triggeren namelijk een serverside event en dus zul je een postback moeten maken. Dit gebeurt dus door je form te posten.
Dat het op je server een ander resultaat geeft zal er denk wel mee te maken hebben dat je server de Client Side Scripts niet op de juiste locatie beschikbaar heeft

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Aanvulling op rwb: Je kan waarschijnlijk niet eens van pagina wijzigen, omdat je linkbutton de property: CausesValidation op true hebben staan. Ik heb het probleem destijds geloof ik ook gehad; ik werd het toen zat en ben gaan werken met het dynamisch laden van controls en een table die ik visible of hidden maakte.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • sander_g
  • Registratie: Juli 2002
  • Laatst online: 12:51
@Folkert:
Ik heb net je code, zonder één bit te wijzigen, even op
http://www.devtips.net/bijlagen/test.aspx
gezet.
Dit werkt volgens mij zoals jij zou willen. .NET v1.1 is het trouwens.

Jouw server is ook versie 1.1, anders had er
/aspnet_client/system_web/1_0_3705_288/WebUIValidation.js
gestaan in de html-source, en nu staat er
/aspnet_client/system_web/1_1_4322/WebUIValidation.js

Garmin Fēnix 7 Pro | https://www.strava.com/athletes/30783039


  • Folkert
  • Registratie: September 2001
  • Laatst online: 10-07 07:58
Zoals het draait op de devtips server, draait het ook bij mij lokaal. Het algemene probleem is dan nu goed zichtbaar dat de linkbuttons submitten zoals rwb aangeeeft. gorgi_19 :+ heeft gelijk door te zeggen dat er dus verder niks gebeurt.
Hm, ga ook maar eens werken met het dynamisch laden van de blokkenom daarmee de panels te omzeilen. Eerst eens kijken naar de CausesValidation="false" optie.....

  • Folkert
  • Registratie: September 2001
  • Laatst online: 10-07 07:58
gorgi_19, bent een held!!! Ik heb er nu CausesValidation="false" in staan en het doet exact wat het moet doen!!!! Ik bel maar eens de provider om het probleem met die scripts op te lossen. _/-\o_ _/-\o_

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Folkert schreef op 25 July 2003 @ 08:44:
gorgi_19, bent een held!!! Ik heb er nu CausesValidation="false" in staan en het doet exact wat het moet doen!!!! Ik bel maar eens de provider om het probleem met die scripts op te lossen. _/-\o_ _/-\o_
Je kan ook zelf de scripts naar die folder kopieren. :P

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Folkert
  • Registratie: September 2001
  • Laatst online: 10-07 07:58
Heb net scripts geupload en het werkt nu allemaal eindelijk zoals het moet. Mijn dank ik groot voor een aantal zeer leerzame posts!!!
Eindresultaat:
http://www.vanmillprojecten.nl/content/test.aspx

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Folkert schreef op 25 July 2003 @ 09:57:
Heb net scripts geupload en het werkt nu allemaal eindelijk zoals het moet. Mijn dank ik groot voor een aantal zeer leerzame posts!!!
Eindresultaat:
http://www.vanmillprojecten.nl/content/test.aspx
En dan moet je nu voor de grap eens kijken naar het resultaat in Netscape 7 en dan het formulier proberen te verzenden.. >:)
Mozilla 1.4 geldt hetzelfde voor en opera 6.05 ook.

* gorgi_19 mompelt iets over geblunder van Microsoft op dit punt.. :+

hint: Probeer maar eerst foutief het formulier te verzenden in IE; vervolgens om het foutief te doen in een van de andere browsers.. Note the difference.. >:)

[ Voor 27% gewijzigd door gorgi_19 op 25-07-2003 10:09 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Folkert
  • Registratie: September 2001
  • Laatst online: 10-07 07:58
Ai, en weg is de euforie stemming... |:( :r :(
Nouja, indien forms worden gebruikt moet ik gewoon maar afblijven van de panels. Panels alleen maar gebruiken met tekstuele pagina's...

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Folkert schreef op 25 July 2003 @ 10:14:
Ai, en weg is de euforie stemming... |:( :r :(
Nouja, indien forms worden gebruikt moet ik gewoon maar afblijven van de panels. Panels alleen maar gebruiken met tekstuele pagina's...
Erhm.. Validator Controls werken gewoon niet in een andere browser dan IE. :P

* gorgi_19 fluistert http://aspalliance.com/st...es/ViewArticle.aspx?id=38

[ Voor 11% gewijzigd door gorgi_19 op 25-07-2003 10:20 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Folkert
  • Registratie: September 2001
  • Laatst online: 10-07 07:58
Hoe bedoel je dat??? Mijn Validator controls werken wel in Netscape en Mozilla!? Indien ze buiten een panel zijn geplaatst. Ook in NS 6.2 werken ze...

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Folkert schreef op 25 July 2003 @ 10:28:
Hoe bedoel je dat??? Mijn Validator controls werken wel in Netscape en Mozilla!? Indien ze buiten een panel zijn geplaatst. Ook in NS 6.2 werken ze...
Ik kan gewoon op bevestigen drukken, terwijl de vakjes leeg zijn. Geen enkele validator die me tegenhoudt. :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Folkert
  • Registratie: September 2001
  • Laatst online: 10-07 07:58
Indien binnen het form runat="server" een panel wordt gebruikt. Maar indien er gewoon een los form wordt gebruikt dan werkt het bij mij prima.
Als ik kijk op dit form dat ook gewoon validators heeft:
http://www.vanmillprojecten.nl/content/informatie.aspx werkt het gewoon...
Pagina: 1