I found this script very helpful while designing surveys for my organization. This post applies to:
– MS SQL server 2005+
– VB.NET
– VS2010
– .NET 4.0 Framework
Javascript code
<asp:content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
<script type="text/javascript" language="javascript">
function CheckCheck() {
var chkBoxList = document.getElementById('< %=CheckBoxList1.ClientID %>');
var chkBoxCount = chkBoxList.getElementsByTagName("input");
var btn = document.getElementById('< %=SubmitBtn.ClientID %>');
var i = 0;
var tot = 0;
for (i = 0; i < chkBoxCount.length; i++) {
if (chkBoxCount[i].checked) {
tot = tot + 1;
}
}
if (tot > 5) {
alert('Cannot check more than 5 check boxes'); btn.disabled = true;
}
else {
btn.disabled = false;
}
}
</script>
</asp:content>
Form page
Chose top five <%= rg %> for < %= Date.Today.Year %>:
<asp:CheckBoxList ID="CheckBoxList1" runat="server"
onclick="javascript:CheckCheck();" class="datagrid">
<asp:ListItem>American Cancer Society</asp:ListItem>
<asp:ListItem>Big Brothers/Big Sisters of Central Iowa</asp:ListItem>
<asp:ListItem>Blank Children’s Hospital</asp:ListItem>
<asp:ListItem>Susan G Komen Breast Cancer Foundation</asp:ListItem>
<asp:ListItem>American Lung Association of Iowa</asp:ListItem>
<asp:ListItem>Habitat for Humanity</asp:ListItem>
<asp:ListItem>March of Dimes</asp:ListItem>
<asp:ListItem>Children and Families of Iowa</asp:ListItem>
<asp:ListItem>Candeo</asp:ListItem>
<asp:ListItem>Neveln Center</asp:ListItem>
<asp:ListItem>Orchard Place</asp:ListItem>
<asp:ListItem>Animal Rescue League of Iowa</asp:ListItem>
</asp:CheckBoxList>
<table>
<tr>
<td>
Other <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td><asp:Label ID="Label1" runat="server"></asp:Label></td>
</tr>
<tr>
<td style="text-align: center;">
<asp:Button ID="ResetBtn" runat="server" Text="Reset" />
<asp:Button ID="SubmitBtn" runat="server" Text="Submit" /></td>
</table>
Code behind
Imports System.IO
Imports System.Data.SqlClient
Imports System.Web.UI.WebControls
Partial Class Docs_Apps_Surveys_EIC_Default
Inherits System.Web.UI.Page
Protected Sub ResetBtn_Click(sender As Object, e As System.EventArgs)_
_ Handles ResetBtn.Click
Me.Server.Transfer("Central.aspx?rg=Charities")
End Sub
Protected Sub SubmitBtn_Click(sender As Object, e As System.EventArgs)_
_ Handles SubmitBtn.Click
'define controls
Dim Other As TextBox
'bind controls
Other = SubmitBtn.FindControl("TextBox1")
'define strings
Dim dToday As String
Dim cRegion As String
Dim OtherEvent As String
'do the work
dToday = Date.Today.ToShortDateString
cRegion = "Central"
OtherEvent = Other.Text.ToString
'define array strings
Dim GroupEvent As New StringBuilder("")
Dim chosen As Integer = 0
Dim i As Integer = 0
'create array
For i = 0 To CheckBoxList1.Items.Count - 1
If (CheckBoxList1.Items(i).Selected = True) Then
chosen += 1
If (chosen > 1) Then GroupEvent.Append(",")
GroupEvent.Append(CheckBoxList1.Items(i).Text)
End If
Next
'do the sql staff
If dToday = "" Then
Label1.Text = "Date inputbox cannot be empty!"
Else
'create db connection string
Dim SQLString As String
Dim ConnString As String
ConnString = "Data Source=my-super-srv;Initial_
_Catalog=surveys;Persist Security Info=True;_
_User ID=myUsr;Password=myPwd"
Try
'SQL statement
SQLString = "INSERT into eic_charities(date, region, events, other)_
_ VALUES (@Date, @Region, @Events, @Other)"
'write to SQL
Dim SQLConn As New SqlConnection()
Dim SQLCmd As New SqlCommand()
SQLConn.ConnectionString = ConnString
SQLConn.Open()
SQLCmd.Parameters.AddWithValue("@Date", dToday.ToString)
SQLCmd.Parameters.AddWithValue("@Region", cRegion.ToString)
SQLCmd.Parameters.AddWithValue("@Events", GroupEvent.ToString)
SQLCmd.Parameters.AddWithValue("@Other", OtherEvent.ToString)
SQLCmd.Connection = SQLConn
SQLCmd.CommandText = SQLString
SQLCmd.ExecuteNonQuery()
SQLConn.Close()
Catch ex As Exception
Label1.Text = "Error: " & ex.ToString()
End Try
Label1.Text = "<font color='green'>Success </font>- click
<a href='http://myHost.com/Charities.aspx?rg=Central'>here</a>
to continue."
End If
End Sub
End Class