سؤال

لدي جمهور في الرمز الخاص بي خلف الصفحة التي تأخذ سلسلة. أرغب في استدعاء هذه الطريقة من جافا سكريبت.

المعلمة التي أرغب في تمريرها متغير يتغير من DDL.

لذلك لدي شيء من هذا القبيل:

 var value = document.getElementById('ddlContact').value;
        <%=PopulateContactFields("value") %>

هذا يمر أسفل الكلمة "قيمة" وليس البيانات ذات القيمة.

لا يمكنني معرفة بناء الجملة المناسب لتقليل البيانات في القيمة.

شكرا

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

المحلول

كما ذكر من قبل الآخرين، في محاولة للوصول إلى C # الكود الخلف مباشرة من جافا سكريبت أمر مستحيل.

ومع ذلك، يمكنك التواصل معها بشكل غير مباشر.

أعتقد أن أفضل لقطة لديك هي استخدام مزيج من جيس و [WebMethod] ينسب.

وظيفة JavaScript باستخدام JQuery للقيام بمكالمة AJAX:

function Search() {
    var search = $('#<%= ddlContact.ClientId %>').val();
    var options = {
        type: "POST",
        url: "Default.aspx/Hello",
        data: "{'name' :'" + search + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            alert(msg);
        }
    };
    $.ajax(options);
}

رمز وراء:

public partial class _Default : System.Web.UI.Page
{
    [WebMethod]
    public void Hello(string name)
    {
      return "Hi " + name;
    }
}

نصائح أخرى

يتم تنفيذ الرمز الذي تظهر عليه جانب الخادم عند إنشاء HTML. بمعنى آخر يتم تنفيذها قبل أن يضرب المتصفح وكان لدى مستخدمك فرصة لفعل أي شيء مع الصفحة.

بغض النظر عن بناء الجملة الذي تستخدمه هنا المعلومات التي تريد الوصول إليها في هذا الوقت - لا وجود لها بعد.

النهج الصحيح هنا هو إرسال هذه المعلومات إلى الخادم إما عن طريق نشر الصفحة أو استخدام AJAX، ثم، في نهاية دورة الطلب / الاستجابة تقوم بمعالجتك

خيار آخر سيكون القيام بجانب معالجة المعالجة باستخدام جافا سكريبت

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