Hello
Putting a little effort got me to know that the values are not saved properly (reading postback had the bug)
replace the following function in the survey module survery.ascx.vb , btnSubmit_Click to following
the changes i did are in bold.
Private Sub cmdSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdSubmit.Click
Dim objSurvey As SurveyInfo
Dim intSurvey As Integer
Dim objSurveyOption As New SurveyOptionInfo
Dim intSurveyOption As Integer
Dim intQuestion As Integer
Dim intOption As Integer
Dim blnValid As Boolean = True
intQuestion = -1
Dim arrSurveys As List(Of SurveyInfo) = SurveyController.GetSurveys(ModuleId)
For intSurvey = 0 To arrSurveys.Count - 1
objSurvey = arrSurveys(intSurvey)
intQuestion += 1
Select Case objSurvey.OptionType
Case "R"
If Request.Form(lstSurvey.UniqueID & "$ctl" & Right("00" & intQuestion,2) & "$optOptions") = "" Then
blnValid = False
End If
Case "C"
blnValid = False
intOption = -1
Dim arrSurveyOptions As List(Of SurveyOptionInfo) = SurveyOptionController.GetSurveyOptions(objSurvey.SurveyId)
For intSurveyOption = 0 To arrSurveyOptions.Count - 1
intOption += 1
If Request.Form(lstSurvey.UniqueID & "$ctl" & Right("00" & intQuestion,2) & "$chkOptions$" & intOption.ToString) <> "" Then
blnValid = True
End If
Next
End Select
Next
If blnValid Then
intQuestion = -1
For intSurvey = 0 To arrSurveys.Count - 1
objSurvey = CType(arrSurveys(intSurvey), SurveyInfo)
intQuestion += 1
Select Case objSurvey.OptionType
Case "R"
If Request.Form(lstSurvey.UniqueID & "$ctl" & Right("00" & intQuestion,2) & "$optOptions") <> "" Then
objSurveyOption.SurveyOptionId = Int32.Parse(Request.Form(lstSurvey.UniqueID & "$ctl" & Right("00" & intQuestion,2) & "$optOptions"))
SurveyOptionController.AddSurveyResult(objSurveyOption, UserId)
End If
Case "C"
intOption = -1
Dim arrSurveyOptions As List(Of SurveyOptionInfo) = SurveyOptionController.GetSurveyOptions(objSurvey.SurveyId)
For intSurveyOption = 0 To arrSurveyOptions.Count - 1
objSurveyOption = CType(arrSurveyOptions(intSurveyOption), SurveyOptionInfo)
intOption += 1
If Request.Form(lstSurvey.UniqueID & "$ctl" & Right("00" & intQuestion,2) & "$chkOptions$" & intOption.ToString) <> "" Then
SurveyOptionController.AddSurveyResult(objSurveyOption, UserId)
End If
Next
End Select
Next
Message_Label.Text = Localization.GetString("SurveyComplete", Me.LocalResourceFile)
If blnPersonalVoteTracking = True Then
' This means the module vote tracking is using personalization, so set the profile to show they have voted
DotNetNuke.Services.Personalization.Personalization.SetProfile(ModuleId.ToString, "Voted", True)
blnVoted = True
DisplayResults()
Else
' Store a cookie to show the chart after the submit
Dim objCookie As HttpCookie = New HttpCookie("_Module" & ModuleId.ToString & "_Survey")
objCookie.Value = "True"
objCookie.Expires = DateTime.MaxValue ' never expires
Response.AppendCookie(objCookie)
blnVoted = True
DisplayResults()
End If
Else
Message_Label.Text = Localization.GetString("SurveyIncomplete", Me.LocalResourceFile)
End If
End Sub