PDA

View Full Version : Using Jason's Date Input Calendar with .NET Form



Jedi
06-16-2009, 02:40 PM
Jason's Date Input Calendar

http://www.dynamicdrive.com/dynamicindex7/jasoncalendar.htm


The calendar itself works fine. The issue is getting it to talk to my .NET form, which also works fine. It's just not capturing in the form results the JavaScript calendar value, which the script stores in a hidden field named "orderdate".

Honestly, I hardly know a lick of JavaScript or ASP (yet) -- I don't even know if what I'm asking is possible, difficult or easy. But I can follow instructions and templates, which is how I got this far.

Thanks in advance for any help.


Here's the page (label "Requested Schedule Service Date"): http://ctrfx.com/samples/entelechy/schedule_test.aspx

Here's the relevant form info:

<form runat="server">
<asp:MultiView ID="YourForm" runat="server" ActiveViewIndex="0">
<asp:View ID="FormContent" runat="server">
<label for="Requested_Schedule_Service_Date"><br />
Requested Schedule Service Date:</label><br />

<script type="">DateInput('orderdate', true, 'DD-MON-YYYY')</script>

<input type="button" onClick="alert(this.form.orderdate.value)" value="Show date value passed" />

<asp:validationsummary ID="ValidationSummary1" runat="server" CssClass="ValidateMessage" ForeColor="" ShowMessageBox="True" ShowSummary="False" />

<asp:button ID="SubmitForm" runat="server" OnClick="SubmitForm_Click" Text="Submit Form" />
</asp:View>

<asp:View ID="FormConfirmationMessage" runat="server">
<p style="text-align: left">Thank you for contacting Entelechy Solutions.</p>
</asp:View>

<asp:View ID="FormErrorMessage" runat="server">
Due to technical difficulty, your message may NOT have been sent.
</asp:View>

<asp:View ID="FormSpamMessage" runat="server">
You did not correctly answer the anti-spam question. Please go back and try again.</asp:View>
</asp:MultiView>
</form>


Here's the head script in case it's needed:

<script runat="server" type="">
Protected Sub SubmitForm_Click(ByVal sender As Object, ByVal e As System.EventArgs)
If Not Page.IsValid Then Exit Sub

Dim SendResultsTo As String = "[email removed]"
Dim smtpMailServer As String = "[server removed]"
Dim smtpUsername As String = "[email removed]"
Dim smtpPassword As String = "[password removed]"
Dim MailSubject As String = "Entelechy Contact Page Form"

Try
Dim txtQ As TextBox = Me.FormContent.FindControl("TextBoxQ")
If txtQ IsNot Nothing Then
Dim ans As String = ViewState("hf1")
If ans.ToLower <> txtQ.Text.ToLower Or ans.ToUpper <> txtQ.Text.ToUpper Then
Me.YourForm.ActiveViewIndex = 3
Exit Sub
End If
End If

Dim FromEmail As String = SendResultsTo
Dim msgBody As StringBuilder = New StringBuilder()
Dim sendCC As Boolean = False


For Each c As Control In Me.FormContent.Controls
Select Case c.GetType.ToString
Case "System.Web.UI.WebControls.TextBox"
Dim txt As TextBox = CType(c, TextBox)
If txt.ID.ToLower <> "textboxq" Then
msgBody.Append(txt.ID & ": " & txt.Text & vbCrLf & vbCrLf)
End If
If txt.ID.ToLower = "email" Then
'FromEmail = txt.Text
End If
If txt.ID.ToLower = "subject" Then
MailSubject = txt.Text
End If
Case "System.Web.UI.WebControls.CheckBox"
Dim chk As CheckBox = CType(c, CheckBox)
If chk.ID.ToLower = "checkboxcc" Then
If chk.Checked Then sendCC = True
Else
msgBody.Append(chk.ID & ": " & chk.Checked & vbCrLf & vbCrLf)
End If

Case "System.Web.UI.WebControls.RadioButton"
Dim rad As RadioButton = CType(c, RadioButton)
msgBody.Append(rad.ID & ": " & rad.Checked & vbCrLf & vbCrLf)
Case "System.Web.UI.WebControls.DropDownList"
Dim ddl As DropDownList = CType(c, DropDownList)
msgBody.Append(ddl.ID & ": " & ddl.SelectedValue & vbCrLf & vbCrLf)
End Select
Next
msgBody.AppendLine()

msgBody.Append("Browser: " & Request.UserAgent & vbCrLf & vbCrLf)
msgBody.Append("IP Address: " & Request.UserHostAddress & vbCrLf & vbCrLf)
msgBody.Append("Server Date & Time: " & DateTime.Now & vbCrLf & vbCrLf)

Dim myMessage As System.Net.Mail.MailMessage = New System.Net.Mail.MailMessage()
myMessage.To.Add(SendResultsTo)
myMessage.From = New System.Net.Mail.MailAddress(FromEmail)
myMessage.Subject = MailSubject
myMessage.Body = msgBody.ToString
myMessage.IsBodyHtml = False
If sendCC Then myMessage.CC.Add(FromEmail)


Dim basicAuthenticationInfo As New System.Net.NetworkCredential(smtpUsername, smtpPassword)
Dim MailObj As New System.Net.Mail.SmtpClient(smtpMailServer)
MailObj.Credentials = basicAuthenticationInfo
MailObj.Send(myMessage)

Me.YourForm.ActiveViewIndex = 1
Catch
Me.YourForm.ActiveViewIndex = 2
End Try
End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
If Not Page.IsPostBack Then
Dim lbl As Label = Me.FormContent.FindControl("labelq")
If lbl IsNot Nothing Then
Dim rq(3) As String
rq(0) = "Is fire hot or cold?"
rq(1) = "Is ice hot or cold?"
rq(2) = "Is water wet or dry?"

Dim ra(3) As String
ra(0) = "hot"
ra(1) = "cold"
ra(2) = "wet"

Dim rnd As New Random
Dim rn As Integer = rnd.Next(0, 3)
lbl.Text = rq(rn)
ViewState("hf1") = ra(rn)
End If
End If
End Sub
</script>