Welcome Guest Search | Active Topics | Sign In | Register

onclick Events in Calendar Options
Trupti
Posted: Monday, August 17, 2009 7:01:24 AM
Rank: Newbie
Groups: Member

Joined: 8/15/2009
Posts: 3

Hello,

I am using your Calendar and able to edit it in my way and display it. Below is the code for my DayRender; I am adding as many notes I want to add in a selected day. Notes property is changed as per my custom class
Code: Visual Basic.NET
Private Sub CallbackPanel1_Execute(ByVal sender As Object, ByVal e As EO.Web.CallbackEventArgs) Handles CallbackPanel1.Execute
        Dim callbackParam As String = CallbackPanel1.LastTrigger.Parameter

        'Validate the parameter. The first 10 characters
        'is the date. The rest is the note.
        If Not (callbackParam Is Nothing) AndAlso callbackParam.Length > 10 Then
            Dim [date] As String = callbackParam.Substring(0, 10)
            Dim note As String = callbackParam.Substring(10)

            If (String.Compare(note, "Add", True) = 0) Then
                'Notes(EO.Web.Calendar.StringToDate([date])) = note
                Dim newtask As List(Of Task) = TaskNotes(EO.Web.Calendar.StringToDate([date]))
                Dim t As New Task(AddType, TypeColor)
                If (newtask Is Nothing) Then
                    newtask = New List(Of Task)
                    newtask.Add(t)
                Else
                    MsgBox("Exists " + t.TaskNote + newtask.Contains(t).ToString)
                    ' If already contains, then don't add
                    If (newtask.Contains(t) = False) Then
                        newtask.Add(t)
                    End If
                End If

                TaskNotes(EO.Web.Calendar.StringToDate([date])) = newtask
                t = Nothing
                newtask = Nothing
            Else
                MsgBox("Date = " + [date] + " Task to Remove = " + note)
            End If
        End If
    End Sub 'CallbackPanel1_Execute

    Protected Sub Calendar1_DayRender(ByVal sender As Object, ByVal e As EO.Web.DayRenderEventArgs) Handles Calendar1.DayRender
        Dim note As String = CStr(Notes(e.Day.Date))
        Dim tasks As List(Of Task) = TaskNotes(e.Day.Date)

        'Create an ID for this day
        Dim dayId As String = "dayId_" + EO.Web.Calendar.DateToString(e.Day.Date)
        dayId = dayId.Replace("-"c, "_"c)

        Dim typeName As String = ""
        If (Not AddType Is Nothing) Then
            typeName = AddType
        End If

        Dim html As String = "<table id=""{0}"" border=""0"" cellSpacing=""0"" cellPadding=""0"""
        html += "onclick=""AddTask('{0}');"">"  ' EditNote('{0}');
        html += "<tr>"
        html += "    <td align=""right"">"
        html += e.Day.DayNumberText '+ ", " + typeName ' + ", " + TypeColor
        html += "    </td>"
        html += "</tr>"
        If (Not tasks Is Nothing) Then
            Dim t As Task
            For Each t In tasks
                html += "<tr>"
                html += "    <td align=""left"" valign=""top"" style=""width:72px;height:12px;overflow:hidden;line-height:14px;BACKGROUND-COLOR:" & t.TaskColor.Name & ";"" onclick=""RemoveTask('{0}', '" & t.TaskNote & "')"" > "
                html += t.TaskNote
                html += "    </td>"
                html += "</tr>"
            Next
            t = Nothing
        Else
            html += "<tr>"
            html += "    <td align=""left"" valign=""top"" style=""width:72px;height:12px;overflow:hidden;line-height:14px;"">"
            html += "    </td>"
            html += "</tr>"
        End If

        html += "</table>"

        'Dim backgroundColor As String = String.Empty
        'If Not (note Is Nothing) Then
        '    backgroundColor = "BACKGROUND-COLOR:" + TypeColor + ";"
        'End If
        html = String.Format(html, dayId)   ', backgroundColor)

        e.Writer.Write(html)
    End Sub


Code: JavaScript
function AddTask(dayId)
{
	//Get the cell in which the edit to take place
	var dayTable = document.getElementById(dayId);
	var s = "Add"  //'document.getElementById(AddType);
	
	//Get the date associated with the cell
	curDate = eo_StringToDate(dayId.substr(6).replace(/_/g, '-'));

  	//Save the note
  	s = eo_DateToString(curDate) + s;
	eo_Callback('<%=CallbackPanel1.ClientID%>', s);

}
function RemoveTask(dayId, tt)
{
    alert(tt)
	//Get the cell in which the edit to take place
	var dayTable = document.getElementById(dayId);
    
	//Get the date associated with the cell
	curDate = eo_StringToDate(dayId.substr(6).replace(/_/g, '-'));
    
    var s = eo_DateToString(curDate) + " " + tt
    alert(s)
    eo_Callback('<%=CallbackPanel1.ClientID%>', s);

}


I am able to add multiple <td> in the cell of the table as per the text and background color. If the user clicks again on the added <td>, it fires onclick event for that td and calls RemoveTask and goes to Callback_Execute for removing. But after that it also executes for AddNote.

So, I click on a added td, RemoveTask is called, goes to Callback in the else part and displays a Msgbox and again comes to callback with parameter s as Add which is in AddTask.

Can you help me guide, that after Remove is fired and comes to callback, then again the AddNote shouldn't be executed. How to overcome this problem.

Looking ahead for your help.


eo_support
Posted: Monday, August 17, 2009 8:48:55 AM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,194
Hi,

We can only tell you that when you use callback, you can pass eo_Callback different values so that your server side code will be able to distinguish different scenarios and perform different action. Our tech support won't look into the code and troubleshoot any coding problems for you though.

Thanks!


You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.