4
我創建了一個服務器控件,其中嵌入了一些JavaScript文件。這工作正常,但是當服務器控件放在ajax UpdatePanel中時,它會在updatepanel內觸發異步回發後停止工作。從UpdatePanel異步回發後嵌入的JavaScript不起作用
這裏是我的服務器控件代碼:
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是一種class from this link。凡在異步回發執行該代碼
:
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);
}
}
}
如何得到這個一個UpdatePanel內工作任何想法?
謝謝你的反饋,但我仍然不確定如何設置。僅供參考除了DateTimePicker.js文件外,我還以同樣的方式嵌入了jquery-1.6.3.min.js和jquery-ui-1.8.16.custom.min.js。到目前爲止,我的DateTimePicker.js文件的內容是:$(document).ready(function(){(DatepickerInput')。datepicker({ 'dd-mm-yy' }); });你能幫我解決一些更多細節嗎? – user1041481
我編輯了這些問題,爲您提供了我將用於該文件的特定代碼。 – PCasagrande
太棒了,現在就開始工作吧。只需改變prm.add_endRequest(BindDatePicker()); prm.add_endRequest(BindDatePicker); – user1041481