A
amessimon
Hi
I have a long form - around 80 fields - which i have decided to break up
into
more manageable sections using the <aspanel> control.
Basically i have three panels (stages) containing various form elements
which i show
and as the user progresses through the form.
I need to use server side validation (client side is not an option) on some
of the fields in the form
dive used an <asp:RequiredFieldValidator> as an example here.
I cant seem to get the validation to take effect - you'll see the
<asp:RequiredFieldValidator> in <aspanel Id="stage1">
as an example - if the user doesn't enter a value of some kind then i'd like
the same stage returned
not allowing the user to bypass it.
Thanks in advance...
Simon Ames
Here's the code.......
<script language="vb" runat="server">
Sub Page_load
fnHideAllPanels
If not IsPostback then
' show stage 1 on loading page for first time
stage1.Visible = True
End If
End Sub
Sub Button_Click (sender As System.Object, e As
system.Web.UI.WebControls.CommandEventArgs)
If e.CommandName = "move_to_stage_2" Then
If page.isvalid then
' if user has entered a value
stage2.Visible = True
Else
' if field is empty
stage1.Visible = True
End If
ElseIf e.CommandName = "move_to_stage_3" Then
stage3.Visible = True
ElseIf e.CommandName = "move_to_stage_1" Then
stage1.Visible = True
End If
End Sub
Function fnHideAllPanels
stage1.Visible = False
stage2.Visible = False
stage3.Visible = False
End Function
</script>
<form runat="server">
<aspanel Id="stage1" RunAt="server" Wrap="">
<h2>Stage One</h2>
<asp:RequiredFieldValidator Id="val_username" RunAt="server"
ControlToValidate="username" EnableClientScript="false" Text="enter a
username" />
<asp:textbox id="username" runat="server"/> * required
<asp:Button Id="move_to_stage_2" CommandName="move_to_stage_2"
OnCommand="button_click" RunAt="server" Text="next"/>
</aspanel>
<aspanel Id="stage2" RunAt="server" Wrap="">
<h2>Stage Two</h2>
<asp:Button Id="move_to_stage_3" CommandName="move_to_stage_3"
OnCommand="button_click" RunAt="server" Text="next"/>
</aspanel>
<aspanel Id="stage3" RunAt="server" Wrap="">
<h2>Stage Three</h2>
<asp:Button Id="move_to_stage_1" CommandName="move_to_stage_1"
OnCommand="button_click" RunAt="server" Text="next"/>
</aspanel>
</form>
I have a long form - around 80 fields - which i have decided to break up
into
more manageable sections using the <aspanel> control.
Basically i have three panels (stages) containing various form elements
which i show
and as the user progresses through the form.
I need to use server side validation (client side is not an option) on some
of the fields in the form
dive used an <asp:RequiredFieldValidator> as an example here.
I cant seem to get the validation to take effect - you'll see the
<asp:RequiredFieldValidator> in <aspanel Id="stage1">
as an example - if the user doesn't enter a value of some kind then i'd like
the same stage returned
not allowing the user to bypass it.
Thanks in advance...
Simon Ames
Here's the code.......
<script language="vb" runat="server">
Sub Page_load
fnHideAllPanels
If not IsPostback then
' show stage 1 on loading page for first time
stage1.Visible = True
End If
End Sub
Sub Button_Click (sender As System.Object, e As
system.Web.UI.WebControls.CommandEventArgs)
If e.CommandName = "move_to_stage_2" Then
If page.isvalid then
' if user has entered a value
stage2.Visible = True
Else
' if field is empty
stage1.Visible = True
End If
ElseIf e.CommandName = "move_to_stage_3" Then
stage3.Visible = True
ElseIf e.CommandName = "move_to_stage_1" Then
stage1.Visible = True
End If
End Sub
Function fnHideAllPanels
stage1.Visible = False
stage2.Visible = False
stage3.Visible = False
End Function
</script>
<form runat="server">
<aspanel Id="stage1" RunAt="server" Wrap="">
<h2>Stage One</h2>
<asp:RequiredFieldValidator Id="val_username" RunAt="server"
ControlToValidate="username" EnableClientScript="false" Text="enter a
username" />
<asp:textbox id="username" runat="server"/> * required
<asp:Button Id="move_to_stage_2" CommandName="move_to_stage_2"
OnCommand="button_click" RunAt="server" Text="next"/>
</aspanel>
<aspanel Id="stage2" RunAt="server" Wrap="">
<h2>Stage Two</h2>
<asp:Button Id="move_to_stage_3" CommandName="move_to_stage_3"
OnCommand="button_click" RunAt="server" Text="next"/>
</aspanel>
<aspanel Id="stage3" RunAt="server" Wrap="">
<h2>Stage Three</h2>
<asp:Button Id="move_to_stage_1" CommandName="move_to_stage_1"
OnCommand="button_click" RunAt="server" Text="next"/>
</aspanel>
</form>