Hi Palli,
Ye understand they are different mechanisms in 6.4, but note this script is not related to any visual component and creating a custom control seems an over-kill. So to be precise what I was referring to is illustrated in the code below. This code, transcribed from the old code, does not fail. However the "call back" events do not fire. I suppose this is some name space thing?
Regards
richard
Public Class TMZ
Private mstrClientTimeZone As String = String.Empty
Private mstrClientTime As String = String.Empty
Public Sub New()
' This call is required by the Windows Form Designer.
InitializeComponent()
''MyBase.TagName = "TM58.TMZ"
End Sub
Protected Overrides Sub RenderAttributes(ByVal context As Gizmox.WebGUI.Common.Interfaces.IContext, ByVal writer As Gizmox.WebGUI.Common.Interfaces.IAttributeWriter)
MyBase.RenderAttributes(context, writer)
writer.WriteAttributeString(Gizmox.WebGUI.WGAttributes.Text, Me.Text)
End Sub
Protected Overloads Overrides Sub FireEvent(ByVal objEvent As IEvent)
MyBase.FireEvent(objEvent)
Select Case objEvent.Type
Case "ClientTimeZone"
mstrClientTimeZone = objEvent("TimeZone")
'
' UTC time plus server offset
'
User.ServerTimeString = mstrClientTimeZone
mstrClientTime = objEvent("Time")
User.ServerTimeString = DateTime.Now
'
' Client time
'
If mstrClientTime.Contains("GMT") Then
mstrClientTime = mstrClientTime.Split("GMT")(0)
End If
User.UserTimeString = mstrClientTime
User.OffsetUserFromServer = DateDiff("h", User.ServerTimeString, mstrClientTime)
User.LogMsg(User.SubID, User.UserID, _
"Offset Of User From Server", "Offset : " & User.OffsetUserFromServer & " Server : " & User.ServerTimeString & " Client :" & User.UserTimeString)
Exit Select
End Select
End Sub
Public Overrides Property Text() As String
Get
Return MyBase.Text
End Get
Set(ByVal value As String)
If Not (MyBase.Text = value) Then
MyBase.Text = value
Me.Update()
End If
End Set
End Property
Private User As TMUser.clsG
Public Property TMUser() As TMUser.clsG
Get
Return User
End Get
Set(ByVal Value As TMUser.clsG)
User = Value
End Set
End Property
Public Property ClientTimeZone() As String
Get
Return mstrClientTimeZone
End Get
Set(ByVal value As String)
mstrClientTimeZone = value
End Set
End Property
Public Sub Register()
RegisterSelf()
End Sub
Public Sub UnRegister()
UnRegisterSelf()
End Sub
Public Sub InitializeTimeZone(ByVal Offset As String)
'InvokeMethodWithId("TMZ_calcTime", Offset)
'
' Replace 6.3 method with 6.4
'
Dim Javascript As String = GetScript(Offset)
InvokeScript(Javascript)
End Sub
Private Function GetScript(ByVal Offset As String) As String
GetScript = "function TMZ_calcTime(strGuid, offset)" & _
"{d = new Date();utc = d.getTime() + (d.getTimezoneOffset() * 60000);" & _
"nd = new Date(utc + (3600000 * offset));" & _
"var objEvent = Events_CreateEvent(strGuid, 'ClientTimeZone', null, true);" & _
"Events_SetEventAttribute(objEvent, 'TimeZone', nd.toLocaleString());" & _
"var objEvent1 = Events_CreateEvent(strGuid, 'ClientTime', null, true);" & _
"Events_SetEventAttribute(objEvent, 'Time', d.toLocaleString());" & _
"Events_RaiseEvents();};TMZ_calcTime( 'TMZ_CalcTime'," & Offset & ");"
End Function
End Class