locked
ckeditor value is not recognized by asp.net and vb.net RRS feed

  • Question

  • User-270722712 posted

    I have integrated ckeditor in my asp.net and vb.net web application. previously This web appilication was using bootstrap-wysihtml5. but now the clients require to use ckeditor.

    To integrate ckeditor I have done the following

    i am using ckeditor_4.4.1 . I have copied the ckeditor folder in root directory. and linked it in the master page. like the following.

    <%@ Master Language="VB" CodeFile="E4.master.vb" Inherits="_resx_E4" %>
       <!doctype html>
       <html lang="en">
       <head runat="server">
           <title></title>
           <meta name="robots" content="noindex, nofollow">
           <meta name="googlebot" content="noindex, nofollow">
           <link href='https://fonts.googleapis.com/css?family=Roboto:400,300,100' rel='stylesheet' type='text/css'>
           <script src="/ckeditor/ckeditor.js" type="text/javascript"></script>
       </head>

    i have not changed the header of the content page. it is like the following

    <%@ Page Page Title="" Language="VB" MasterPageFile="~/_resx/E4.master" AutoEventWireup="false" CodeFile="new.aspx.vb" Inherits="E4_Jobs_new" ValidateRequest="false" %>
    <%@ Page    <%@ Register Src="~/_controls/ucApplicationQuestions.ascx" TagPrefix="Application"
    TagName="Questions" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="Server">

    and finally the text area code in the contentpage

    <div><label>Description (required)</label>
          <div>
            <textarea runat="server" id="txtDescription" name="txtDescription" class="ckeditor" style="width: 98%; height: 250px;"  ></textarea>
           </div></div>

    The ckeditor toolbar is showing on the textarea.But website can't recognize the value that is written in the ckeditor field nor does it save those value in the database. Even when I submit the form after writting on the text area it is not allowing me to submit form as the description field have to have some text. But I actually wriiten in the textarea or copy paste from wordfile. but it just doesnot gets any value.

    Please help me with code

    It doesnot has to be ck editor. it can be tinymce or niceedit. 

    But tinymce and nice edit is not working at all

    Tuesday, June 10, 2014 11:41 AM

Answers

  • User-270722712 posted

    I found the answer. And I think I have to share it ; in case someone else faces the same problem.

    Here are the steps I followed.

    1. Downloaded the ckeditor from the link http://ckeditor.com/download

    2. Copied the whole folder under project folder.

    3. In the master page added the following lines to add reference of ckeditor

     <script src="/ckeditor/ckeditor.js" type="text/javascript"></script>
        <script src="/ckeditor/adapters/jquery.js" type="text/javascript"></script>
        <script src="/ckeditor/ckeditor_custom.js" type="text/javascript"></script>

        4. Changed the class for the specific textarea

      <textarea runat="server" id="txtDescription" name="txtDescription" class="ckeditor" style="width: 98%; height: 250px;"   ></textarea>

       5. Added following javascript function at the bottom of the content page

    $('#' + '<%= btnSave.ClientID%>').mousedown(function () {
     for (var i in CKEDITOR.instances) {
         CKEDITOR.instances[i].updateElement();
     }
    });

    thats it.  No need to change anything in the code file

    here the btn.save is the button which submits the data

    Thanks

     

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Wednesday, June 11, 2014 8:40 AM

All replies

  • User-718146471 posted

    Can you please show us the code file?  I think you may need to use a different variable to capture text from the ckeditor in your code page.

    Tuesday, June 10, 2014 11:47 AM
  • User-270722712 posted

    It is a long file. any way i am including it . the required text area  has id="txtDescription" name="txtDescription" class="edr" and runat="server"

    Imports System.Threading
    Imports NLog
    
    Partial Class E4_Jobs_new
        Inherits System.Web.UI.Page
    
    
        Private _logger As Logger = LogManager.GetCurrentClassLogger()
    
        Private _vacancy As Vacancy
    
        Public ReadOnly Property Mode() As String
            Get
                Return CStr(Request("mode"))
            End Get
        End Property
    
        Public ReadOnly Property ModeID() As Integer
            Get
                Return CInt(Request("v"))
            End Get
        End Property
    
    
        Public Property Vacancy() As Vacancy
            Get
                Return _vacancy
            End Get
            Set(ByVal value As Vacancy)
                _vacancy = value
            End Set
        End Property
    
        Public ReadOnly Property Employer() As Employer
            Get
                Return New Employer(LocalHelper.UserEmployerID())
            End Get
        End Property
    
        Protected Sub Page_Init(sender As Object, e As EventArgs) Handles Me.Init
            If Not Vacancy.Accessible(CInt(Request("v"))) AndAlso Request("mode").Equals("edit") Then Response.Redirect("/E4/Error/403.aspx")
        End Sub
    
    
    
    
    
    
    
    
        Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    
    
    
    
            If Not IsPostBack Then
    
    
                If Mode.Equals("new") Then
                    'Create draft on new jobs and Start editing draft
                    Dim draft = New Vacancy()
                    draft.EmployerID = LocalHelper.UserEmployerID()
                    draft.SaveAsDraft()
                    Response.Redirect("new.aspx?mode=draft&v=" & draft.DraftId)
    
                ElseIf Mode.Equals("clone") AndAlso ModeID > 0 Then
                    'Create draft while cloning
                    Response.Redirect("new.aspx?mode=draft&v=" & Vacancy.CopyToDraft(ModeID))
    
    
                ElseIf Mode.Equals("template") AndAlso ModeID > 0 Then
                    'Create draft while cloning
                    Response.Redirect("new.aspx?mode=draft&v=" & Vacancy.CloneDraft(ModeID))
    
                End If
    
                If Mode.Equals("draft") AndAlso ModeID > 0 Then
    
                    'Load draft
                    Vacancy = New Vacancy()
                    Vacancy.LoadDraft(ModeID)
    
                    If Vacancy.Template AndAlso Vacancy.DraftId > 0 Then
                        Template.Value = "True"
                        btnSave.Text = "Save template"
                    End If
    
                ElseIf Mode.Equals("edit") Then
                    'Load vacancy
                    Vacancy = New Vacancy(ModeID)
                End If
    
    
    
    
                'set defaults
                txtClosingDate.Value = Today.AddMonths(1).ToString("dd-mm-yyyy")
                chkDisplayClosingDate.Checked = Vacancy.DisplayClosingDate
                comJobType.SelectedIndex = 0
                comJobHours.SelectedIndex = 0
                txtPostcode.Value = Employer.PostCode
                Helper.SetInputListIDs(comSector, Employer.SectorID)
                chkAllowCandidateAttachment.Checked = False
                chkCovernoteRequired.Checked = True
    
    
                'Populate lists
                comLocation.DataSource = DB.GetData("SELECT id, name FROM location WHERE deleted = 0  ORDER BY name")
                comLocation.DataBind()
    
                chkDisplayLocation.Checked = Vacancy.DisplayMap
    
                If Mode.Equals("edit") Then
                    comAgencyPercentage.DataSource = DB.GetData("SELECT id,name FROM introductionfee WHERE percentage >= @per ", Core.DB.SIP("per", Vacancy.IntroductionFeePercentage))
                    comAgencyPercentage.DataBind()
                    comReferrerPercentage.DataSource = DB.GetData("SELECT id,name FROM referrerfee WHERE percentage >= @per ", Core.DB.SIP("per", Vacancy.ReferrerFeePercentage))
                    comReferrerPercentage.DataBind()
                Else
                    LocalHelper.BindInputList(comAgencyPercentage, "introductionfee", "<< select >>")
                    LocalHelper.BindInputList(comReferrerPercentage, "referrerfee", "<< select >>")
                End If
                comRetainedAgency.DataSource = LocalHelper.CachedAgencyList()
                comRetainedAgency.DataBind()
                comRetainedAgency.Items.Insert(0, New ListItem("none", -1))
                comPSL.DataSource = DB.GetData("SELECT [EmployerPSLList].id AS 'id', [EmployerPSLList].name AS 'name' FROM EmployerPSLList WHERE [EmployerPSLList].deleted = 0 AND [EmployerPSLList].employerid = @employerid ORDER BY [EmployerPSLList].name", Core.DB.SIP("employerid", LocalHelper.UserEmployerID()))
                comPSL.DataBind()
                comPSL.Items.Insert(0, New ListItem("none", -1))
    
                Dim brnds = LocalHelper.CachedBrandingList(LocalHelper.UserEmployerID())
                comBrandingID.DataSource = brnds
                comBrandingID.DataBind()
                If brnds.Rows.Count <= 0 Then
                    comBrandingID.Items.Insert(0, New ListItem("Default Brand", "-1"))
                End If
                comBrandingID.SelectedIndex = 0
    
                comDepartment.DataSource = DB.GetData("select id, name from department where employerid = @eid", DB.SIP("eid", LocalHelper.UserEmployerID()))
                comDepartment.DataBind()
                comDepartment.Items.Insert(0, New ListItem("Not specified", ""))
    
                comMainContact.DataSource = LocalHelper.CachedEmployerUserList(LocalHelper.UserEmployerID)
                comMainContact.DataBind()
                comUsersWithAccess.DataSource = LocalHelper.CachedEmployerUserList(LocalHelper.UserEmployerID)
                comUsersWithAccess.DataBind()
                comSector.DataSource = DB.GetData("select id, name from sector where deleted = 0 order by name")
                comSector.DataBind()
                Dim srvs = DB.GetData("select id, title from survey where deleted = 0 and employerid = @eid", Core.DB.SIP("eid", LocalHelper.UserEmployerID()))
                If srvs.Rows.Count > 0 Then
                    comSurvey.DataSource = srvs
                    comSurvey.DataBind()
                    comSurvey.Items.Insert(0, New ListItem("none", ""))
                Else
                    comSurvey.Enabled = False
                End If
    
    
                txtTitle.Value = Vacancy.Title
                txtDisplaySalary.Value = Vacancy.DisplaySalary
                Helper.SetInputListIDs(comLocation, Vacancy.LocationID)
                txtPostcode.Value = Vacancy.Postcode
                txtDescription.Value = Vacancy.Summary.Replace(Environment.NewLine, "<br/>")
                txtClosingDate.Value = IIf(Vacancy.Expires < Today AndAlso Mode.Equals("draft"), Today.AddMonths(1).ToString("dd-MM-yyyy"), Vacancy.Expires.ToString("dd-MM-yyyy"))
    
    
                Helper.SetInputListID(comJobType, Vacancy.JobTypeID)
                Helper.SetInputListID(comJobHours, Vacancy.JobHoursID)
                Helper.SetInputListID(comContractLength, Vacancy.ContractLength)
    
    
                Helper.SetInputListID(comFeeType, Vacancy.FeeType)
                Helper.SetInputListID(comCurrency, Vacancy.CurrencyID)
                txtMinSalary.Value = Vacancy.SalaryFrom.ToString("##")
                txtMaxSalary.Value = Vacancy.SalaryTo.ToString("##")
                Helper.SetInputListID(comAgencyPercentage, DB.GetInteger("SELECT id FROM introductionfee WHERE percentage = " & Vacancy.IntroductionFeePercentage))
                Helper.SetInputListID(comRetainedAgency, Vacancy.ApplyRetainedAgencyID)
                Helper.SetInputListID(comPSL, Vacancy.ApplyPSLID)
                Helper.SetInputListID(comReferrerPercentage, DB.GetInteger("SELECT id FROM referrerfee WHERE percentage = " & Vacancy.ReferrerFeePercentage))
                Helper.SetInputListID(comPSL, Vacancy.ApplyPSLID)
                chkSignOn.Checked = Not Vacancy.NoCandidateBonus
                chkScreening.Checked = Vacancy.Mpbresourcing
    
                ctrApplicationQuestions.ApplicationQuestions = ApplicationQuestions.FromXml(Vacancy.QuestionXml)
    
                Helper.SetInputListIDs(comSector, Vacancy.SectorID)
                If Vacancy.SurveyId.HasValue Then
                    Helper.SetInputListID(comSurvey, Vacancy.SurveyId.Value.ToString())
                End If
                Helper.SetInputListID(comBrandingID, Vacancy.ApplyBrandID)
                comDepartment.SelectedValue = Vacancy.Department
                Helper.SetInputListID(comMainContact, Vacancy.ConsultantUserID)
                Helper.SetInputListIDs(comUsersWithAccess, Vacancy.UsersWithAccessID)
    
                txtRef.Value = Vacancy.Ref
                txtPon.Value = Vacancy.PurchaseOrderNum
                Helper.SetInputListIDs(comSector, Vacancy.SectorID)
                If Vacancy.SurveyId.HasValue Then Helper.SetInputListID(comSurvey, Vacancy.SurveyId.ToString())
                If Vacancy.SurveyId.HasValue Then chkSurveyAnnonymous.Checked = Vacancy.SurveyAnnonymous
                txtAdditionalCost.Value = Vacancy.AdditionalCost.ToString("##")
                txtAdditionalCostSummary.Value = Vacancy.AdditionalCostDescription
    
                txtApplicationNote.Value = Vacancy.ApplicationNote
    
                chkAllowCandidateAttachment.Checked = Vacancy.AllowCandidateAttachment
                chkCovernoteRequired.Checked = Vacancy.CoverNoteRequired
    
                hdnAwaitingApproval.Value = Vacancy.AwaitingApproval.ToString()
                hdnApprovalSend.Value = Vacancy.ApprovalSend.ToString("dd MMM yyyy HH:mm")
                hdnApproved.Value = Vacancy.Approved.ToString()
                hdnApprovedAt.Value = Vacancy.Approvedat.ToString("dd MMM yyyy HH:mm")
    
                If Vacancy.InternalJob Then
                    hdnPublishOption.Value = "internal"
                ElseIf Not Vacancy.PublicJob Then
                    hdnPublishOption.Value = "confidential"
                Else
                    hdnPublishOption.Value = "public"
                End If
    
            End If
        End Sub
    
    
    
    
    
        Private Sub PopulateVacancy()
    
            If Mode.Equals("draft") Then
                Vacancy = New Vacancy()
            Else
                Vacancy = New Vacancy(ModeID)
            End If
    
    
            With Vacancy
    
    
                .DraftId = CInt(IIf(Mode.Equals("draft"), ModeID, 0))
    
                .EmployerID = LocalHelper.UserEmployerID()
    
    
                If hdnPublishOption.Value.Equals("internal") Then
                    .InternalJob = True
                ElseIf hdnPublishOption.Value.Equals("confidential") Then
                    .PublicJob = False
                    .InternalJob = False
                Else
                    .PublicJob = True
                    .InternalJob = False
                End If
    
    
                .Title = Left(txtTitle.Value.Trim(), 64)
                .DisplaySalary = Left(txtDisplaySalary.Value, 64)
                .LocationID = Helper.GetInputListIDs(comLocation)
                .DisplayMap = chkDisplayLocation.Checked
                .Postcode = Left(txtPostcode.Value.Replace(" ", ""), 10)
                .Summary = txtDescription.Value
                .Expires = CDate(txtClosingDate.Value)
                .DisplayClosingDate = chkDisplayClosingDate.Checked
    
                .JobTypeID = CInt(comJobType.Value)
                .JobHoursID = CInt(comJobHours.Value)
                If .JobTypeID = 3 Then .ContractLength = CInt(comContractLength.Value)
    
    
                If Not String.IsNullOrEmpty(MediaLists.Value) Then
                    .MediaList = MediaLists.Value
                End If
    
    
                .FeeType = CInt(comFeeType.Value)
                .CurrencyID = CInt(comCurrency.Value)
                If IsNumeric(txtMinSalary.Value) AndAlso IsNumeric(txtMaxSalary.Value) Then
                    .SalaryFrom = CDec(txtMinSalary.Value)
                    .SalaryTo = CDec(txtMaxSalary.Value)
                End If
    
                'On variable fee set noagencyfee false but % 0
                If CInt(comFeeType.Value) = 2 Then
                    .NoAgencyFee = False
                    .IntroductionFeePercentage = 0
                    If Retained.Value.Equals("1") AndAlso comRetainedAgency.SelectedIndex > 0 Then
                        .ApplyRetainedAgencyID = CInt(comRetainedAgency.SelectedValue)
                    ElseIf comPSL.SelectedIndex > -1 Then
                        .ApplyPSLID = CInt(comPSL.SelectedValue)
                    End If
    
                ElseIf CInt(comFeeType.Value) < 2 Then
                    If comAgencyPercentage.SelectedValue > 0 Then
                        Dim ap = CDec(DB.GetString("SELECT percentage FROM introductionfee WHERE id = " & comAgencyPercentage.SelectedValue))
                        If ap > 0 Then
                            .NoAgencyFee = False
                            .IntroductionFeePercentage = ap
                            If Retained.Value.Equals("1") AndAlso comRetainedAgency.SelectedIndex > 0 Then
                                .ApplyRetainedAgencyID = CInt(comRetainedAgency.SelectedValue)
                            ElseIf comPSL.SelectedIndex > -1 Then
                                .ApplyPSLID = CInt(comPSL.SelectedValue)
                            End If
                        Else
    
                            .NoAgencyFee = True
                        End If
                    End If
                End If
                If comReferrerPercentage.SelectedValue > 0 Then
                    Dim rp = CDec(DB.GetString("SELECT percentage FROM referrerfee WHERE id = " & comReferrerPercentage.SelectedValue))
                    If rp > 0 Then
                        .NoReferrerFee = False
                        .ReferrerFeePercentage = rp
                        .NoCandidateBonus = Not CBool(chkSignOn.Checked)
                    Else
                        .NoReferrerFee = True
                    End If
                End If
    
                .Mpbresourcing = CBool(chkScreening.Checked)
    
    
    
                .QuestionXml = ctrApplicationQuestions.ApplicationQuestions.ToXML()
    
                .Ref = Left(txtRef.Value, 30)
                .PurchaseOrderNum = Left(txtPon.Value, 30)
                .SectorID = Helper.GetInputListIDs(comSector)
                If comSurvey.Enabled AndAlso Not String.IsNullOrWhiteSpace(comSurvey.SelectedValue) Then
                    .SurveyId = New Guid(comSurvey.SelectedValue)
                    .SurveyAnnonymous = chkSurveyAnnonymous.Checked
                End If
                .ApplyBrandID = DB.GetInteger("SELECT id FROM employerbrand WHERE id = " & comBrandingID.SelectedValue)
                .Department = comDepartment.SelectedValue
                .ConsultantUserID = CInt(comMainContact.SelectedValue)
                .ContactUserID = CInt(comMainContact.SelectedValue)
                .UsersWithAccessID = Helper.GetInputListIDs(comUsersWithAccess)
                If IsNumeric(txtAdditionalCost.Value) Then .AdditionalCost = CDec(txtAdditionalCost.Value)
                .AdditionalCostDescription = txtAdditionalCostSummary.Value
    
                .ApplicationNote = Left(txtApplicationNote.Value.Trim(), 500)
    
                .AllowCandidateAttachment = chkAllowCandidateAttachment.Checked
                .CoverNoteRequired = chkCovernoteRequired.Checked
                .AwaitingApproval = CBool(hdnAwaitingApproval.Value)
                .ApprovalSend = CDate(hdnApprovalSend.Value)
                .Approved = CBool(hdnApproved.Value)
                .Approvedat = CDate(hdnApprovedAt.Value)
    
                .Closed = False
    
    
                .CalculateFees()
            End With
    
            '_logger.Info(Helper.TruncateString(LocalHelper.StripHTML(txtDescription.Value), 4500, ""))
    
        End Sub
    
    
        Protected Sub btnPreview_Click(sender As Object, e As EventArgs) Handles btnPreview.Click
            If Page.IsValid Then
                PopulateVacancy()
                If Mode.Equals("draft") Then
                    Vacancy.SaveAsDraft()
                    Response.Redirect("preview.aspx?v=" & Vacancy.DraftId)
                End If
            End If
        End Sub
    
        Protected Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
    
            If Page.IsValid Then
    
                If CBool(Template.Value) Then
                    PopulateVacancy()
                    Vacancy.Template = True
                    Vacancy.SaveAsDraft()
                    Response.Redirect("templates.aspx")
                Else
                    PopulateVacancy()
                    If Mode.Equals("draft") Then
                        Vacancy.SaveAsDraft()
                        Response.Redirect("draft.aspx")
                    ElseIf Mode.Equals("edit") Then
                        Vacancy.Save()
                        Vacancy.SaveFees()
                        Vacancy.CacheMatches()
                        Response.Redirect("new-complete.aspx?t=edit&v=" & Vacancy.ID)
                    End If
                End If
    
            End If
        End Sub
        
    
        Protected Sub ApplicationsQuestionsModeValidator_ServerValidate(source As Object, args As ServerValidateEventArgs) Handles ApplicationsQuestionsModeValidator.ServerValidate
            args.IsValid = Not ctrApplicationQuestions.IsInEditMode()
        End Sub
    
        Protected Sub btnSaveTemplate_Click(sender As Object, e As EventArgs) Handles btnSaveTemplate.Click
    
            If Page.IsValid Then
                PopulateVacancy()
                Vacancy.Template = True
                Vacancy.SaveAsDraft()
                Response.Redirect("templates.aspx")
            End If
        End Sub
    
        Protected Sub FeesValidator_ServerValidate(source As Object, args As ServerValidateEventArgs) Handles FeesValidator.ServerValidate
            'If comAgencyPercentage.SelectedValue > 0 Then
            '    If comFeeType.Value.Equals("0") AndAlso (String.IsNullOrWhiteSpace(txtMinSalary.Value) Or Not String.IsNullOrWhiteSpace(txtMaxSalary.Value)) Then
            '        FeesValidator.ErrorMessage = "Please enter a min amd max salary for Fixed fee type."
            '        args.IsValid = False
            '    End If
            'End If
    
        End Sub
    End Class
    

    and the following is the javascript which was included at the bottom of  the frontend page. 

    the backend vb.net is following

    <asp:Content ID="Content2" ContentPlaceHolderID="ScriptContent" runat="Server">
        <script src="/_resx/js/jquery.uploadify.min.js"></script>
     
    
        <!-- Added by Bashabi on 03-06-2014 by Bashabi. the following line of source has been referenced in order change the wysihtml script. Shariful used Bootstrap-wysihtml5 script. Now it is changed to ckeditor for better performance of copy and paste.-->
    
       <!-- <script src="/Scripts/ckeditor/ckeditor.js" type="text/javascript"></script>
        <script src="/Scripts/ckeditor/adapters/jquery.js" type="text/javascript"></script>
       <script src="/Scripts/tinymce/js/tinymce/tinymce.min.js" type="text/javascript"></script>-->
       <!-- End of code (by Bashabi) -->
    <!--<script src="/_resx/js/wysihtml5-0.3.0.min.js"></script>
    <script src="/_resx/js/bootstrap-wysihtml5.js"></script> 
    <script src="/tinymce/js/tinymce/tinymce.min.js" type="text/javascript"></script>-->
    
     <script type="text/javascript">
    
        
    
            $(function () {
                dimNav('vacancy');
    
                $('#file_upload').uploadify({
                    'buttonClass': 'button2',
                    'buttonText': 'Select a PDF or DOCX file to upload..',
                    'width': 250,
                    'fileTypeExts': '*.pdf; *.doc; *.docx',
                    'formData': {
                        'draftId': id,
                        'type': mode
                    },
                    'uploadLimit': 3,
                    'swf': '/_resx/uploadify.swf',
                    'uploader': '/e4/jobs/upload-job-attachments.ashx',
                    'onUploadSuccess': function (file, data, response) {
                        $('#attachmentList').append('<li id="da' + data + '"><span>' + file.name + '</span><span class="rd" data-did="' + data + '"> remove</span></li>');
                    }
                });
    
                $('body').on('click', '.rd', function () {
                    var el = $(this);
                    $.post('delete-job-attachment.ashx?id=' + el.attr('data-did'), '{}', function () {
                        $('#da' + el.attr('data-did')).remove();
                    });
                });
    
    // the following line was used for bootstrap-wysihtml5 script. enable it if you want to activate the wysihtml5 script again instead of ckeditor
    
                // $('.edr').wysihtml5();
    
     // the following line was used for ckeditor script. This line of code added by Bashabi on 03-06-2014. Disable it and enable the previous line to activate the wysihtml5
    
             //   $('.edr').ckeditor();
    
    
               
               
           
    
    
                $('.price-button').click(function () { $(this).next('.price-list').fadeToggle('slow'); });
    
                $('.m-lists table tr:nth-child(4) td:nth-child(1)').prepend('<div>Multiple job posting</div>');
    
    
    
    
    
    
                $('.jMedias').change(function () {
                    suffleMedias();
                });
    
                var suffleMedias = function () {
                    var mids = [];
                    $('.jMedias:checked').each(function () {
                        mids.push($(this).val());
                    });
                    $('.mediaLists').val(mids.toString());
                };
    
    
                $('.jType').change(function () {
                    suffleJobType();
                });
    
    
    
                $('input:radio.p-option-radio').change(function () {
                    var pOption = $(this).val();
                    $('.p-option').val(pOption);
                });
    
                var suffleJobType = function () {
                    var type = $('.jType').val();
                    if (type == 0) {
                        $('#contractLength, #jobHour').slideUp();
                    } else if (type == 1) {
                        $('#jobHour').slideDown();
                        $('#contractLength').slideUp();
                    } else if (type == 2) {
                        $('#jobHour').slideDown();
                        $('#contractLength').slideUp();
                    } else if (type == 3) {
                        $('#contractLength, #jobHour').slideDown();
                    }
    
                };
    
                var suffleFeeType = function () {
                    var fType = $('.feeType').val();
    
                    if (fType == 0) {
                        $('#salaryRateMax, #salaryRateMin, #agencyFee').slideDown();
                    } else if (fType == 1) {
                        if (parseFloat($('.referrerPercentage option:selected').text()) > 0) {
                            //$('#signOnBonus').slideDown();
                        } else {
                            $('#salaryRateMax, #salaryRateMin').slideUp();
                        }
                        $('#agencyFee').slideDown();
                    } else if (fType == 2) {
                        $('#agencyFee').slideUp();
                        if (parseFloat($('.referrerPercentage option:selected').text()) > 0) {
                            //$('#signOnBonus').slideDown();
                        } else {
                            $('#salaryRateMax, #salaryRateMin').slideUp();
                        }
                    }
                };
    
                $('.feeType').change(function () {
                    suffleFeeType();
    
                });
                $('.referrerPercentage').change(function () {
                    if (parseFloat($('.referrerPercentage option:selected').text()) > 0) {
                        //$('#salaryRateMax, #salaryRateMin, #signOnBonus').slideDown();
                        $('#salaryRateMax, #salaryRateMin').slideDown();
                    } else {
                        if ($('.feeType').val() == 1) {
                            $('#salaryRateMax, #salaryRateMin').slideUp();
                        }
                    }
                });
                $('.signOnYes  input[type=checkbox]').change(function () {
                    if ($(this).is(':checked')) {
                        //$('#signonSummary').slideDown();
                    } else {
                        //$('#signonSummary').slideUp();
                    }
                    CalculateAndDisplayFees();
                });
    
                $('.calcFee').change(function () {
                    CalculateAndDisplayFees();
                });
    
    
                $('.rAgency').chosen().change(function () {
                    if ($(this).val() != '-1') {
                        $('.psls').val('-1').trigger("liszt:updated");
                        $('.retained').val('1');
                    }
                });
    
                $('.psls').chosen().change(function () {
                    if ($(this).val() != '-1') {
                        $('.rAgency').val('-1').trigger("liszt:updated");
                        $('.retained').val('0');
                    }
                });
    
    
                var setPublishOption = function () {
                    var p = $('.p-option').val();
                    var $radios = $('input:radio.p-option-radio');
                    $radios.filter('[value=' + p + ']').attr('checked', true);
                };
    
    
                suffleJobType();
                suffleFeeType();
                suffleMedias();
                CalculateAndDisplayFees();
                setPublishOption();
            });
    
            function CalculateAndDisplayFees() {
                var fType = parseInt($('.feeType').val()),
                    currency = $('.feeCurrency option:selected').text(),
                    agencyPercentage = parseFloat($('.agencyPercentage option:selected').text()),
                    referrerPercentage = parseFloat($('.referrerPercentage option:selected').text()),
                    minSalary = parseFloat($('.minSalary').val()),
                    maxSalary = parseFloat($('.maxSalary').val()),
                    totalApayable = 0,
                    totalRefpayable = 0,
                    totalCanPayable = 0,
                    signOnYes = false, //$(".signOnYes  input[type=checkbox]").is(':checked'),
                    medianSalary = median([minSalary, maxSalary]),
                    jobType = $('.jType option:selected').val(),
                    contractLength = $('.jClength option:selected').val(),
                    contractFactor = 1;
    
                if (jobType == 3 && contractLength > 0 && contractLength < 12) {
                    contractFactor = contractLength / 12;
                }
    
                if (fType == 0 && agencyPercentage > 0) {
                    //fixed
                    totalApayable = (medianSalary * agencyPercentage / 100) * contractFactor;
                    totalApayable = isNaN(totalApayable) ? 0 : totalApayable;
    
                    $('#lblagencyFee').html(currency + ' ').append((totalApayable).formatMoney(2, '.', ','));
                    //$('#lbladFeeOnAgency').html(currency + ' ').append((totalApayable * 0.2).formatMoney(2, '.', ','));
                    //$('#lbltotalFeesOnIntroduction').html(currency + ' ').append(totalApayable.formatMoney(2, '.', ','));
    
    
                } else if (fType == 1 && agencyPercentage > 0) {
                    //onSuccess
    
                    $('#lblagencyFee').html(agencyPercentage).append(' % of final salary');
                    //$('#lbladFeeOnAgency').html('1% of final salary');
                    //$('#lbltotalFeesOnIntroduction').html(agencyPercentage).append(' % of final salary');
    
                } else if (fType == 2) {
    
                    $('#lblagencyFee').html('TBC');
                    $('#lbladFeeOnAgency').html('N/A');
                    $('#lbltotalFeesOnIntroduction').html('TBC');
    
                } else {
    
                    $('#lblagencyFee').html(currency + ' 0.00');
                    //$('#lbladFeeOnAgency').html(currency + ' 0.00');
                    //$('#lbltotalFeesOnIntroduction').html(currency + ' 0.00');
    
                }
    
                totalRefpayable = (medianSalary * referrerPercentage / 100) * contractFactor;
                totalRefpayable = isNaN(totalRefpayable) ? 0 : totalRefpayable;
    
                if (signOnYes) {
    
                    //$('#lblreferrerFee').html(currency + ' ').append((totalRefpayable * 0.6).formatMoney(2, '.', ','));
                    //$('#lbladFeeOnReferrer').html(currency + ' ').append((totalRefpayable * 0.2).formatMoney(2, '.', ','));
                    //$('#lblcandFeeOnReferrer').html(currency + ' ').append((totalRefpayable * 0.2).formatMoney(2, '.', ','));
                    //$('#lbltotalFeesOnReferrer').html(currency + ' ').append(totalRefpayable.formatMoney(2, '.', ','));
    
                    //totalCanPayable = totalRefpayable * 0.4;
                    //$('#lblsignonFee').html(currency + ' ').append((totalCanPayable / 2).formatMoney(2, '.', ','));
                    //$('#lbladFeeOnSignOn').html(currency + ' ').append((totalCanPayable / 2).formatMoney(2, '.', ','));
                    //$('#lbltotalFeeOnSignOn').html(currency + ' ').append(totalCanPayable.formatMoney(2, '.', ','));
    
                } else {
    
                    $('#lblcandFeeOnReferrer').html('-');
                    $('#lblreferrerFee').html(currency + ' ').append((totalRefpayable).formatMoney(2, '.', ','));
                    //$('#lbladFeeOnReferrer').html(currency + ' ').append((totalRefpayable * 0.2).formatMoney(2, '.', ','));
                    //$('#lbltotalFeesOnReferrer').html(currency + ' ').append(totalRefpayable.formatMoney(2, '.', ','));
                }
    
    
            }
    
    
            Number.prototype.formatMoney = function (c, d, t) {
                var n = this, c = isNaN(c = Math.abs(c)) ? 2 : c, d = d == undefined ? "," : d, t = t == undefined ? "." : t, s = n < 0 ? "-" : "", i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
                return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
            };
    
    
            function median(values) {
    
                values.sort(function (a, b) { return a - b; });
    
                var half = Math.floor(values.length / 2);
    
                if (values.length % 2)
                    return values[half];
                else
                    return (values[half - 1] + values[half]) / 2.0;
            }
    
        </script>
    </asp:Content>
    

    Tuesday, June 10, 2014 12:43 PM
  • User-718146471 posted

    Bashabi, it would appear you are not implementing the ckeditor in the proper way.  You have to use an actual ckeditor object to do this.  Take a look at this example from the CKEditor forums:

    http://ckeditor.com/forums/Support/VB.NET-inline-configuration

    Tuesday, June 10, 2014 1:00 PM
  • User-270722712 posted

    hi

    Thanks for your reply. Actually I know that I am missing something here. But I dont know what. The link you gave me is for ckeditor configuration. I dont have any problem with the configuration. the toolbars of ckeditor are visible but the neither the front end nor backend can recognise the ck editor value. 

    For example when I write something in the editor and try to submit the form I can't. cause that textarea field is a required field. So the form cannot be submit with that field blank. But actually I have actually written in that field.

    If I withdraw the blank field validation then I can submit the form. But it does not save that field data in to database. so when I open that information that field shows blank.

    So can you please guide me what I am missing? How can I make it work. 

    I am new with asp.net and vb.net and looking after another developers code. So please sugest me in easy way.

    Regards

    Bashabi

    Wednesday, June 11, 2014 4:59 AM
  • User-718146471 posted

    You said it does not have to be ckeditor so have you considered using Rich Text Editor for ASP.NET and MVC?  http://richtexteditor.com/ 

    Here is a demo: http://richtexteditor.com/demo/

    This one does come with a cost however.  For a free alternative, try WinThusiasm HTML Editor: http://winthusiasm.com/

    Wednesday, June 11, 2014 6:25 AM
  • User-270722712 posted

    I found the answer. And I think I have to share it ; in case someone else faces the same problem.

    Here are the steps I followed.

    1. Downloaded the ckeditor from the link http://ckeditor.com/download

    2. Copied the whole folder under project folder.

    3. In the master page added the following lines to add reference of ckeditor

     <script src="/ckeditor/ckeditor.js" type="text/javascript"></script>
        <script src="/ckeditor/adapters/jquery.js" type="text/javascript"></script>
        <script src="/ckeditor/ckeditor_custom.js" type="text/javascript"></script>

        4. Changed the class for the specific textarea

      <textarea runat="server" id="txtDescription" name="txtDescription" class="ckeditor" style="width: 98%; height: 250px;"   ></textarea>

       5. Added following javascript function at the bottom of the content page

    $('#' + '<%= btnSave.ClientID%>').mousedown(function () {
     for (var i in CKEDITOR.instances) {
         CKEDITOR.instances[i].updateElement();
     }
    });

    thats it.  No need to change anything in the code file

    here the btn.save is the button which submits the data

    Thanks

     

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Wednesday, June 11, 2014 8:40 AM