سؤال

وأنا باستخدام ASP صافي اياكس أدوات ولها GridView داخل UpdatePanel، كل شيء يعمل بشكل جيد.

وعندما حاولت تشغيل بعض JQuery على الطاولة التي يجب أن تكون ولدت، وليس هناك أي علامة على GridView (أو HTML الجدول) في DOM التي يتم إرجاعها. انا افترض ان هذا يتم قبل كل شيء ASP Javascript ولدت؟

وكيف يمكنني تنفيذ أية إجراءات على GridView التي تقع ضمن UpdatePanel؟

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

المحلول

وASP.NET سوف فسد أسماء لعناصر في ظل ظروف معينة. قد ترغب في النظر في مصدر ولدت للتأكد من أنك الرجوع إلى سيطرة الاسم الذي يطلق من قبل ASP.NET عندما يتم إنشاؤها. وربما هو ليس الاسم الذي أعطاه في المبرمجة.

نصائح أخرى

إذا كنت يمكن أن تولد جافا سكريبت الخاصة في codebehind، في Page_Load لإصرار، ثم يمكنك حقن GridView1.ClientID الخاص بك، وما إلى جافا سكريبت الخاصة. (I استخدام مربع نص هنا على سبيل المثال، لكنه يتبع نفس المفهوم.)

protected void Page_Load(object sender, EventArgs e)
{
    string js = "$(document).ready(function(){$(\"#" + this.TextBox1.ClientID + "\").text('hello world');});";
    HtmlGenericControl script = new HtmlGenericControl("script");
    script.Attributes.Add("type", "text/javascript");
    script.InnerHtml = js;
    Page.ClientScript.RegisterStartupScript(this.GetType(), "key", js, true);
}

وهناك ثلاثة حلول لهذه أستطيع أن أفكر. أول، عن طريق الحقن جافا سكريبت من الخادم مع ClientID كما يوحي ديف، ويعمل ولكن يحصل فوضوي حقا بسرعة. فعلت هذا لبعض الوقت ولكن هذا النوع من ضيق اقتران من جانب الخادم والعميل يسبب مشاكل.

والثانية هي توفير وسيلة أخرى لتحديد الكيانات، مثل فئة المغلق. هذا هو أفضل من الخيار الأول، ولكن يترك لك مع الكثير من تعريفات فئة غريبة لديك للحفاظ على التوالي.

والحل انا افضل لاستخدام إطار جافا سكريبت مسج مثل التي تحتوي على محرك محدد. بهذه الطريقة، يمكنك الحصول على جميع أنحاء القمامة UniqueID من خلال اختيار بعض ذكية وDOM اجتياز.

ودعونا نقول لديك التحكم المسمى myControl. سوف ASP.Net توليد مساحة ضخمة قبل أن ذلك لا توجد أي اصطدام معرف عندما تقدمها. ولكن يمكنك تحديد كل myControl عن طريق القيام $ ( '[ID = $ myControl]') الذي يختار كل كائن مع معرف أن ينتهي myControl. ربما يكون هناك طرق مشابهة للقيام بذلك في أطر أخرى، لكنني لست على دراية كافية معهم لإعطاء مثال على ذلك.

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