私は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);
}
}
アヤックス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の内で動作するように取得する方法上の任意のアイデアは?
をいただき、ありがとうございますこのすべてが必要ですが、マイクロソフトに呼び出すJavaScriptのいくつかは、コールバック機能を提供抱き合わせていますフィードバックは、私はまだこれを設定する方法についてはよく分かりません。 FYIはDateTimePicker.jsファイルに加えて、同じ方法でjquery-1.6.3.min.jsとjquery-ui-1.8.16.custom.min.jsも埋め込んでいます。これまでのDateTimePicker.jsファイルの内容は次のとおりです。$(document).ready(function(){ $( '。DatepickerInput')datepicker({ showAnim: 'blind'、 autoSize:true、 dateFormat: 'dd-mm-yy' }); });詳細を教えてもらえますか? – user1041481
私はそのファイルに使用する特定のコードを与えるために質問を編集しました。 – PCasagrande
すごく、今働いている。 prm.add_endRequest(BindDatePicker())を変更するだけでした。 prm.add_endRequest(BindDatePicker)に; – user1041481