Ik heb hier een situatue waarin ik een formulier aanbied dat mensen invullen en door middel van een knop submitten. Nu zou ik graag willen voorkomen dat als zij (per ongeluk of ongeduldig) informatie dubbel versturen. Dit is te doen door zodra ze de knop induwen deze uit te schakelen. Hiervoor heb al even gezocht en om dit op een juiste manier te doen is het nodig een controle uit te voeren op de client-kant, in de vorm van stukje javascript (zie code behind).
Bovenstaande heb ik aan het werk. Echter, in het formulier voer ik ook een controle uit of een bepaald veld een verplicht veld is. Velden en knoppen zitten in dezelfde ValidationGroup. En hier ontstaat het probleem. Deze eerste keer gaat dit goed, geheel volgens plan, maar als iemand nogmaals een veld vergeet in te vullen wordt de code die achter de knop zit niet meer uitgevoerd... Als iemand dit eens eerder heeft meegemaakt of hier ideëen over heeft: ik hoort het graag!
De code:
[ASP]:
[C# code behind]
Bovenstaande heb ik aan het werk. Echter, in het formulier voer ik ook een controle uit of een bepaald veld een verplicht veld is. Velden en knoppen zitten in dezelfde ValidationGroup. En hier ontstaat het probleem. Deze eerste keer gaat dit goed, geheel volgens plan, maar als iemand nogmaals een veld vergeet in te vullen wordt de code die achter de knop zit niet meer uitgevoerd... Als iemand dit eens eerder heeft meegemaakt of hier ideëen over heeft: ik hoort het graag!
De code:
[ASP]:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| <asp:updatePanel ID="UpdatePanel" runat="server" UpdateMode="Conditional"> <ContentTemplate> <div class="FnBlockBody"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr><td class="FnBlockHeader" colspan="10">Koptitel</td></tr> <tr><td colspan="10"> </td></tr> <tr> <td colspan="10"> ASP tekstveld: <asp:TextBox ID="txtTextBox_ASP" runat="server" /> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtTextBox_ASP" ErrorMessage="FOUT" ValidationGroup="Required" ></asp:RequiredFieldValidator> </td> </tr> <tr><td><asp:Label ID="lblError" runat="server" /></td></tr> <tr> <td colspan="10" style="text-align:right"> <asp:Button ID="btnSave" runat="server" Text="Opslaan" onClick="btnSaveClick" CausesValidation="true" ValidationGroup="Required"/> </td> </tr> </table> </div> </ContentTemplate> </asp:updatePanel> |
[C# code behind]
code:
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
| public partial class xxx : System.Web.UI.Page { public void Page_Load(object sender, EventArgs e) { btnSave.Attributes.Add("onclick", " this.disabled = true; " + ClientScript.GetPostBackEventReference(btnSave, null) + ";"); if (!Page.IsPostBack) { // } } protected void btnSaveClick(object sender, EventArgs e) { if (Page.IsValid) { // Voer Query uit. lblError.Text = lblError.Text + "Prima, voer query uit."; } else { btnSave.Enabled = true; } } } |