I have created a server control where I have embedded some JavaScript files. This works ok, but when the server control is put within an ajax UpdatePanel, it stops working after an async postback is triggered within the updatepanel.
Here is my code in the server control:
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
ClientScriptManager clientScriptManager = Page.ClientScript;
const string DATE_TIME_PICKER_JS = "JQueryControls.Scripts.DateTimePicker.js";
clientScriptManager.RegisterClientScriptResource(typeof(DateTimePicker), DATE_TIME_PICKER_JS);
if (Ajax.IsControlInsideUpdatePanel(this) && Ajax.IsInAsyncPostBack(Page))
{
Ajax.RegisterClientScriptResource(Page, typeof(DateTimePicker), DATE_TIME_PICKER_JS);
}
}
Ajax is a class from this link.
Where this code is executed on the async postback:
public static void RegisterClientScriptResource(Page page, Type type, string resourceName) {
object scriptManager = FindScriptManager(page);
if (scriptManager != null) {
System.Type smClass = GetScriptManagerType(scriptManager);
if (smClass != null) {
Object[] args = new Object[] { page, type, resourceName };
smClass.InvokeMember("RegisterClientScriptResource",
System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public |
System.Reflection.BindingFlags.InvokeMethod,
null, null, args);
}
}
}
Any ideas on how to get this to work within an UpdatePanel?