/// <summary> /// Sets a server side function target for an event of client element /// </summary> /// <param name="clientId">The client id.</param> /// <param name="elementId">The element id.</param> /// <param name="eventName">Name of the event.</param> /// <param name="eventTarget">The event target.</param> /// <param name="returnValue">The return value.</param> public static void SetElementEvent(string clientId, string elementId, string eventName, ClientElementEventReceived eventTarget, string returnValue) { string fakeId = elementId.ToLower().Trim(); string objectType = "document.getElementById('" + elementId + "')"; if (fakeId == "body" || fakeId == "window" || fakeId == "document" || fakeId == "document.body") { if (fakeId == "body") fakeId = "document.body"; objectType = fakeId; } string simpleName = elementId + "_" + eventName; bool hasClient; lock (CometWorker.ClientStatus) { hasClient = CometWorker.ClientStatus.ContainsKey(clientId); } if (hasClient) { lock (CometWorker.ClientStatus[clientId]) { if (CometWorker.ClientStatus[clientId].Events.ContainsKey(simpleName)) CometWorker.ClientStatus[clientId].Events.Remove(simpleName); CometWorker.ClientStatus[clientId].Events.Add(simpleName, eventTarget); } } if (returnValue.Trim().Length == 0) { returnValue = "\"\""; } CometWorker.SendToClient(clientId, @" document.__" + simpleName + " = function(ev){PokeIn.Send(PokeIn.GetClientId()+'.BrowserEvents.Fired(" + elementId + ","+ eventName + ","+returnValue+");'); };function c3eb(){var _item = " + objectType + "; PokeIn.AddEvent(_item, '" + eventName + "', document.__" + simpleName + ");}"+"\nc3eb();\n"); }
/// <summary> /// Sets a server side function target for an event of client element /// </summary> /// <param name="clientId">The client id.</param> /// <param name="elementId">The element id.</param> /// <param name="eventName">Name of the event.</param> /// <param name="eventTarget">The event target.</param> /// <param name="returnValue">The return value.</param> public static void SetElementEvent(string clientId, string elementId, string eventName, ClientElementEventReceived eventTarget, string returnValue) { string fakeId = elementId.ToLower().Trim(); string objectType = "document.getElementById('" + elementId + "')"; if (fakeId == "body" || fakeId == "window" || fakeId == "document" || fakeId == "document.body") { if (fakeId == "body") { fakeId = "document.body"; } objectType = fakeId; } string simpleName = elementId + "_" + eventName; bool hasClient; lock (CometWorker.ClientStatus) { hasClient = CometWorker.ClientStatus.ContainsKey(clientId); } if (hasClient) { lock (CometWorker.ClientStatus[clientId]) { if (CometWorker.ClientStatus[clientId].Events.ContainsKey(simpleName)) { CometWorker.ClientStatus[clientId].Events.Remove(simpleName); } CometWorker.ClientStatus[clientId].Events.Add(simpleName, eventTarget); } } if (returnValue.Trim().Length == 0) { returnValue = "\"\""; } CometWorker.SendToClient(clientId, @" document.__" + simpleName + " = function(ev){PokeIn.Send(PokeIn.GetClientId()+'.BrowserEvents.Fired(" + elementId + "," + eventName + "," + returnValue + ");'); };function c3eb(){var _item = " + objectType + "; PokeIn.AddEvent(_item, '" + eventName + "', document.__" + simpleName + ");}" + "\nc3eb();\n"); }