سؤال

حسنا، لدي طاولة، مصنوعة من قبل GridView، وأصلت Told Labler، إنها تعمل على ما يرام.

ثم وضعتها داخل upderpanel، وأضاف التعليمات البرمجية لربطها على إعادة النشر، إليك النصي الخاص بي:

function loadEvents() { $("table[id$='gv']").tablesorter(); }
$(document).ready(function() { loadEvents(); });
function reBind() {
    if (Sys.WebForms.PageRequestManager) {
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_endRequest(function() { loadEvents(); });
    }
}

الذي يعمل بشكل رائع، قمت بتحميل GRIDVIEW، أعمال الفرز.

  • يمكنني النقر فوق الزر الذي ينشر مرة أخرى، إنه يعمل بشكل جيد.
  • أنا انقر فوق تكرارا والنقر الأول يعمل على فرز، فرزه، لكنه يتعطل - هناك - يمكنني تغيير الأعمدة، لكنه لن يقوم أبدا بالفرز؟ ولكن بعد ذلك ...
  • أنا انقر مرة أخرى، ويعمل بشكل جيد

هذا يستمر، ويعمل في كل ساعة أخرى ... أي أفكار؟

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

المحلول

مشكلتك تبدو وكأنها مشكلة جانبية الخادم - يعمل الفرز فقط بعد أن تم ربط الجدول بنفس الطلب. وإلا فإن الحدث هوك للفرز لا يمكن العثور على أي شيء.

بالطبع - إذا كنت قد ربطت بالفعل الجدول، فقد تم فرزها بالفعل - حتى الآن عليك الحصول على البيانات مرة أخرى.

هذا النوع من القضية هو مشكلة شائعة مع نموذج الحدث .NET الرهيبة.

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

إصلاح أفضل هو تجنب استخدام Hook-Ups الحدث في أي عناصر صفحة ديناميكية.

هذه الأنواع من المشاكل مع نموذج الحدث .NET صفحة جزء من السبب هناك الكثير من الاهتمام في MVC.

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