سؤال

ولدي داتاغريدفيف أنني ربط من جدول SQL، في ذلك العنف المنزلي لدي هذه السمات: الهوية، واسم والأسعار. عندما تعيين SortMode من أعمدة الاسم إلى تلقائي وأنا انقر على رأس هذا العمود أستطيع أن فرز هذا DV استنادا إلى الحرف الأول من اسم، وبهذه الطريقة أستطيع أن تأمر المنتجات القائمة على أول رسائلهم (Acumulator، قارب، كوكاكولا، محرك الخ).

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

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

المحلول

وهناك أسلوب على داتاغريدفيف يسمى "ترتيب":

this.dataGridView1.Sort(this.dataGridView1.Columns["Name"], ListSortDirection.Ascending);

وهذا سوف فرز برمجيا داتاغريدفيف الخاص بك.

نصائح أخرى

dataGridView1.Sort(dataGridView1.Columns[0],ListSortDirection.Ascending);

ويمكنك التحكم عادت البيانات من قاعدة بيانات SQL عن طريق طلب البيانات التي تم إرجاعها:

orderby [Name]

إذا تنفيذ الاستعلام SQL من التطبيق الخاص بك، تأمر البيانات التي تم إرجاعها. على سبيل المثال، وجعل وظيفة الذي يستدعي إجراء أو ينفذ SQL وإعطائها المعلمة أن يحصل على معايير orderby. لأنه إذا كنت قد طلبت عادت البيانات من قاعدة البيانات فإنه سوف تستهلك الوقت ولكن من أجل ذلك منذ أن نفذ الخطة كما لو كنت أقول إن كنت تريد أن يكون أمر ليس من UI تريد أن يكون أمر في وقت التشغيل ذلك من أجل ذلك عند تنفيذ SQL الاستعلام.

وهذا واحد هو أبسط:)

dataview dataview1; 
this.dataview1= dataset.tables[0].defaultview;
this.dataview1.sort = "[ColumnName] ASC, [ColumnName] DESC";
this.datagridview.datasource = dataview1;

استخدم خاصية Datatable.Default.Sort ومن ثم ربط ذلك إلى داتاغريدفيف.

وأفضل طريقة للقيام بذلك هي لفرز القائمة قبل ربط مصدر البيانات.

وcars = cars.OrderBy(o => o.year).ThenBy(o => o.color).ToList(); adgCars.DataSource = cars;

وآسف لبلدي سيئة الانجليزية.

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