Products

Solutions

Resources

Partners

Community

Blog

About

QA

Ideas Test

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

Welcome to the DNN Community Forums, your preferred source of online community support for all things related to DNN.
In order to participate you must be a registered DNNizen

HomeHomeDNN Open Source...DNN Open Source...Module ForumsModule ForumsSurveySurveyTo Fix the Survey Module to work with DNN 4.5To Fix the Survey Module to work with DNN 4.5
Previous
 
Next
New Post
4/7/2007 8:47 AM
 

Due to changes in DNN 4.5 any Survey version ealier than 04.00.70 will not work with DNN4.5 . A new version has been submitted to te release process but it may take a week or two. To fix an ealier version of te Survey module, replace this method in Survey.ascx.vb with this code:

#Region "Form Events"
        Private Sub lstSurvey_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles lstSurvey.ItemDataBound

            Dim objSurvey As SurveyInfo = SurveyController.GetSurvey(Int32.Parse(lstSurvey.DataKeys(e.Item.ItemIndex).ToString), ModuleId)
            If Not objSurvey Is Nothing Then
                Dim SurveyOptionList As New List(Of SurveyOptionInfo)
                SurveyOptionList = SurveyOptionController.GetSurveyOptions(objSurvey.SurveyId)

                Select Case objSurvey.OptionType
                    Case "R"
                        Dim optOptions As RadioButtonList = CType(e.Item.FindControl("optOptions"), RadioButtonList)
                        optOptions.DataSource = SurveyOptionList
                        optOptions.DataTextField = "OptionName"
                        optOptions.DataValueField = "SurveyOptionId"
                        optOptions.DataBind()
                        optOptions.Visible = True
                    Case "C"
                        Dim chkOptions As CheckBoxList = CType(e.Item.FindControl("chkOptions"), CheckBoxList)
                        chkOptions.DataSource = SurveyOptionList
                        chkOptions.DataTextField = "OptionName"
                        chkOptions.DataValueField = "SurveyOptionId"
                        chkOptions.DataBind()
                        chkOptions.Visible = True
                End Select
            End If

        End Sub

        Private Sub cmdSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdSubmit.Click
            Dim objRadioButtonList As RadioButtonList
            Dim objCheckBoxList As CheckBoxList
            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
            Dim blntmpValid As Boolean = False

            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"
                        objRadioButtonList = Me.FindControl("lstSurvey").Controls(intQuestion).FindControl("optOptions")
                        If objRadioButtonList.SelectedIndex = -1 Then
                            blnValid = False
                        End If
                    Case "C"
                        objCheckBoxList = Me.FindControl("lstSurvey").Controls(intQuestion).FindControl("chkOptions")
                        blntmpValid = False
                        intOption = -1
                        Dim arrSurveyOptions As List(Of SurveyOptionInfo) = SurveyOptionController.GetSurveyOptions(objSurvey.SurveyId)
                        For intSurveyOption = 0 To arrSurveyOptions.Count - 1
                            intOption += 1
                            If objCheckBoxList.Items(intOption).Selected = True Then
                                blntmpValid = True
                            End If
                        Next
                        If blntmpValid = False Then
                            blnValid = False
                        End If
                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 Not IsNothing(Me.FindControl("lstSurvey").Controls(intQuestion).FindControl("optOptions")) Then
                                objRadioButtonList = Me.FindControl("lstSurvey").Controls(intQuestion).FindControl("optOptions")
                                objSurveyOption.SurveyOptionId = Convert.ToInt32(objRadioButtonList.SelectedValue)
                                SurveyOptionController.AddSurveyResult(objSurveyOption, UserId)
                            End If
                        Case "C"
                            intOption = -1
                            objCheckBoxList = Me.FindControl("lstSurvey").Controls(intQuestion).FindControl("chkOptions")
                            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 objCheckBoxList.Items(intOption).Selected = True 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

        Private Sub cmdResults_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdResults.Click
            DisplayResults()
        End Sub

        Private Sub lstResults_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles lstResults.ItemDataBound

            Dim objSurvey As SurveyInfo
            Dim objSurveyOption As SurveyOptionInfo
            Dim intSurveyOption As Integer
            Dim strHTML As String
            Dim intGraphWidth As Integer = 400

            If CType(Settings("surveygraphwidth"), String) <> "" Then
                intGraphWidth = Int32.Parse(CType(Settings("surveygraphwidth"), String))
            End If

            strHTML = "<BR><TABLE BORDER=""0"" CELLPADDING=""2"" CELLSPACING=""0"" WIDTH=""100%"">"

            objSurvey = SurveyController.GetSurvey(Int32.Parse(lstResults.DataKeys(e.Item.ItemIndex).ToString), ModuleId)
            If Not objSurvey Is Nothing Then
                Dim arrSurveyOptions As List(Of SurveyOptionInfo) = SurveyOptionController.GetSurveyOptions(objSurvey.SurveyId)
                For intSurveyOption = 0 To arrSurveyOptions.Count - 1
                    objSurveyOption = arrSurveyOptions(intSurveyOption)

                    Dim dblPercent As Double = 0
                    If objSurvey.Votes <> 0 Then
                        dblPercent = Convert.ToDouble(objSurveyOption.Votes / objSurvey.Votes)
                    End If
                    strHTML += "<TR>"
                    strHTML += "<TD VALIGN=""top"" CLASS=""YourCompanyNameSurveyResults"">" & FormatSurveyOption(objSurveyOption.OptionName, objSurveyOption.IsCorrect) & "&nbsp;(" & objSurveyOption.Votes.ToString & ")</TD>"
                    strHTML += "<TD ALIGN=""left"" VALIGN=""top"" CLASS=""Normal"" NOWRAP><IMG SRC=""" & Me.TemplateSourceDirectory & "/red.gif"" WIDTH=""" & (intGraphWidth * dblPercent) & """ BORDER=""0"" HEIGHT=""15"">&nbsp;" & CInt(dblPercent * 100).ToString & "%</TD>"
                    strHTML += "</TR>"
                Next
            End If

            strHTML += "</TABLE>"

            Dim lblResults As Label = CType(e.Item.FindControl("lblResults"), Label)
            lblResults.Text = strHTML
        End Sub

        Private Sub cmdSurvey_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdSurvey.Click
            DisplaySurvey()
        End Sub

#End Region



Michael Washington
http://ADefWebserver.com
www.ADefHelpDesk.com
A Free Open Source DotNetNuke Help Desk Module
 
Previous
 
Next
HomeHomeDNN Open Source...DNN Open Source...Module ForumsModule ForumsSurveySurveyTo Fix the Survey Module to work with DNN 4.5To Fix the Survey Module to work with DNN 4.5


These Forums are dedicated to discussion of DNN Platform and Evoq Solutions.

For the benefit of the community and to protect the integrity of the ecosystem, please observe the following posting guidelines:

  1. No Advertising. This includes promotion of commercial and non-commercial products or services which are not directly related to DNN.
  2. No vendor trolling / poaching. If someone posts about a vendor issue, allow the vendor or other customers to respond. Any post that looks like trolling / poaching will be removed.
  3. Discussion or promotion of DNN Platform product releases under a different brand name are strictly prohibited.
  4. No Flaming or Trolling.
  5. No Profanity, Racism, or Prejudice.
  6. Site Moderators have the final word on approving / removing a thread or post or comment.
  7. English language posting only, please.
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out