.Net Gridview Alpha فرز، فإنه يحتاج إلى فرز عدديا

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

  •  09-06-2019
  •  | 
  •  

سؤال

هذا هو سؤالي الحقيقي الأول الذي أحتاجه لأي من خبراء Gridview الموجودين في عالم .NET.

أقوم بإنشاء Gridview من codebehind وأحتفظ بمجموعة من البيانات الرقمية في الأعمدة.على الرغم من أنني أقوم بإضافة الفاصلة في حقول الأرقام من codebehind.عندما أقوم بتحميله إلى Gridview، يتم تشغيل إمكانية الفرز، لكن طريقة عرض الشبكة تختار فرز ALPHA بدلاً من الفرز رقميًا لأنني أقوم بإضافة تلك الفواصل.

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

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

المحلول 4

بدلاً من ذلك، لجأت للتو إلى JQUERY Table Sorter.

يمكن العثور عليها هنا: فارز الطاولة

نصائح أخرى

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

يمكنك العثور على تطبيق جيد جدًا في C# هنا:
http://www.codeproject.com/KB/string/NaturalSortComparer.aspx

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

P-Invoc هو صديقك.

[DllImport("Shlwapi.dll", CharSet = CharSet.Unicode)]
private static extern int StrCmpLogicalW(string psz1, string psz2);

ثم يمكنك استخدامه كمقارن خاص بك.

على سبيل المثال (في VS2005)،

Array.Sort(tringArray, delegate(string left, string right)
{
    return StrCmpLogicalW(left, right);
});

أدرك أن هذا أمر قديم حقًا، لكنك تخلط بين البيانات والعرض التقديمي؛هذا هو ما يفسد هذا النوع.احصل على الرقم من SQL دون إضافة فواصل، ثم قم بإضافته في طبقة العرض التقديمي.

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