لا يمكن الحصول على جافا سكريبت للتنفيذ على عنصر تحكم مستخدم ASP.NET

StackOverflow https://stackoverflow.com/questions/700337

سؤال

أحاول أن أفعل أبسط شيء، وهو إظهار تنبيه منبثق من خلال جافا سكريبت من الكود الموجود خلف عنصر تحكم المستخدم (ascx.cs).

لقد حاولت

protected void btnSave_Click(object sender, EventArgs e)
{
    ScriptManager.RegisterStartupScript(btnSave, GetType(), "uniqueID", "alert('hello');", true);
}

إلى جانب

Page.ClientScript.RegisterStartupScript(GetType(), "uniqueID", "alert('hello');", true);

ولكن يبدو أن لا شيء يعمل بالنسبة لي.يوجد عنصر التحكم داخل RadAjaxPanel (telerik) في صفحة ASPX.

أفتقد شيئًا واضحًا هنا.أي أفكار ماذا؟

يحرر: لم يتم إدخال جافا سكريبت في مصدر HTML بقدر ما أستطيع رؤيته.أبحث عن المعرف وبيان التنبيه الفعلي في HTML.

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

المحلول 2

آه، كانت المشكلة في Telerik RadAjaxPanel.كان عليّ فقط ضبط EnableOutsideScripts على القيمة true عليها، كما يلي:

<telerik:RadAjaxPanel ID="ajaxpanel" runat="server" LoadingPanelID="ajaxLoadingPanel" EnableOutsideScripts="true">

وبعد ذلك يمكنني استخدام الكود التالي:

ScriptManager.RegisterStartupScript(btnSave, GetType(), "uniqueID", "alert('hello');", true);

نصائح أخرى

تمرير نوع الصفحة إلى نوع البرنامج النصي للعميل معامل :

Page.ClientScript.RegisterClientScriptBlock(typeof(MyPage), 
    "myPostBackScript", script, true);

يحرر : عادةً ما يعمل هذا الرمز، لكنني لا أعرف كيف يؤثر التحكم في telerik على البرنامج النصي الذي تم إدخاله.أعتقد أنه يجب عليك فتح مصدر HTML للصفحة ومحاولة العثور على البرنامج النصي المُدرج.وهذا سوف يساعدنا على حل مشكلتك.

هل تمتلك <form runat="server" في صفحتك؟

هل تتصل إذا كان من حدث onClienClick للزر؟مهما كان عنصر التحكم الذي تستخدمه، تأكد من أنك تستدعي JS من حدث من جانب العميل

أيضا، نلقي نظرة على هذا للأفكار

يحرر

لا يمكنك استدعاء js من الخادم، js هو برنامج نصي من جانب العميل.ما يمكنك فعله هو تسجيل البرنامج النصي الخاص بك بعد إجراء كل عمليات التحقق، وربطه بحدث التحميل.انظر الى هذا هذا سؤال للتفاصيل

تحرير2

الدفع آخر مشاركة في هذه الصفحة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top