سؤال

لدي صفحة ASPX مع أربعة UpdatePanels. بالمناسبة، يتوافق كل upderpanel مع علامة تبويب ui jQuery. ما أحاول تحقيقه هو مربع حوار Modal ui jQuery خارج upderpanels التي يمكن استدعاؤها من رمز جانب الخادم الذي يعمل داخل أي من upderpanels. لذلك، داخل أول updepanel هو ASP: زر يعمل ببعض الرمز جانب الخادم. عندما يكون خطأ OCURRS، أريد أن أكون قادرا على حقن بعض JavaScript الذي سيتصل بحوار مشروط لعرض رسالة الخطأ. هنا هو الرمز الذي أستخدمه:

Dim script As String = "showPopupMessage('{0}');"
script = String.Format(script, errorMessage)
ScriptManager.RegisterStartupScript(Me.UpdatePanelBizInfo, Me.UpdatePanelBizInfo.GetType, Guid.NewGuid.ToString, script, True)

تبدو وظيفة ShowPopupupMessage على الصفحة مثل هذا:

function showPopupMessage(msg) {
    $('#<%=Me.LabelPopupMessage.ClientID %>').text(msg);
    $('#dialogPopupMessage').dialog('open');
}

عندما يعمل الرمز لحقن جافا سكريبت، لا يحدث شيء. أفترض أن لديه علاقة به حقيقة أن الخطأ OCURRS في التعليمات البرمجية قيد التشغيل داخل UpdatePanel. عند فحص HTML الناتج، جافا سكريبت هناك. ما الخطأ الذي افعله؟

هل كانت مفيدة؟

المحلول

يمكنك تشغيل JavaScript على الصفحة أثناء إعادة النشر غير المتزامنة، ولكن لديك تنفيذها بشكل صحيح تحتاج إلى استخدام فئة ScriptManager لتسجيله. بمجرد أن تفعل ذلك، سوف ينطلق كبرنامج نصي بدء التشغيل عند رد ألواح التحديث. هل يمكن أن يكون لديك نافذة مشروطة مفتوحة لإطلاق النار كبرنامج نصي بدء التشغيل في تلك الحالات.

فيما يلي سؤال متشابه للغاية حيث أرسلت بعض التعليمات البرمجية المخصصة (انظر الإجابة المقبولة). من المحتمل حل مشكلتك.

ASP.NET - جافا سكريبت داخل Ajax UpdatePanel

إذا كان كل SE مكالمة مشروطة مفتوحة openMyModal(someParams...);, ، يمكنك استخدام التعليمات البرمجية المرتبطة باسم:

string scriptText = "openMyModal(someParams...);";
this.RegisterClientStartupScript("openMyModal", scriptText);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top