چگونه جابجایی ستونها و ترتیب جدید را در DataGridView ذخیره کنیم
سلام دوستان،
من یک دیتاگریدویو دارم که به Dataset وصل است. وقتی ستونها را جابجا میکنم و ترتیب جدیدی به آن میدهم به محض بیرون
رفتن از برنامه و اجرای مجدد آن، ستونها به ترتیب قبلی خود برمیگردند.
سوال : چگونه و به چه ترتیبی جایگاه جدید ستونها را ذخیره کنیم که در اجراهای بعدی بهمان صورت باقی بمانند؟
با تشکر از لطف شما.
نقل قول: چگونه جابجایی ستونها و ترتیب جدید را در DataGridView ذخیره کنیم
وفتی اطلاعات رو تو دیتا گرید بایند میکنی میتونی ترتیب مورد نظرتون رو اعمال کنید .در خط سوم میتونید جابجایی رو اعمال کنید. از نوع سوال شما من چنین برداشتی کردم
Dim dt = New DataTable
Dim cnn As New SqlConnection("Connection")
Dim sqlcmd As New SqlCommand("SELECT ID, Name, Phone FROM TBL_Me WHERE Phone = @Phone", cnn)
sqlcmd.Parameters.Add(New SqlParameter("@Name", txtName.text))
sqlcmd.Parameters.Add(New SqlParameter("@Phone", txtPhone.Text))
Dim ad = New SqlDataAdapter(sqlcmd)
ad.Fill(dt)
DataGridView1.DataSource = dt
cnn.Close()
نقل قول: چگونه جابجایی ستونها و ترتیب جدید را در DataGridView ذخیره کنیم
سلام ،
ممنون از توجه شما .
منظور من بعد از بایند شدن بود، یعنی کاربر در RunTime بتونه ترتیب ستونها رو عوض کنه و بعد از اینکه از برنامه بیرون اومد و
وقتی دوباره برنامه رو اجرا میکنه ترتیب ستونها مطابق با آخرین تغییراتی باشه که به ستونها داده.
نقل قول: چگونه جابجایی ستونها و ترتیب جدید را در DataGridView ذخیره کنیم
یکی از دلایلی که پاسخ دریافت نمیشه اینه که سوال برای مخاطب خوب مطرح نمیشه مثلا در پرسش شما اینکه کاربرها چگونه و چرا باید دسترسی به ترتیب ستونها را داشته باشند . هدف برای مخاطب شما مشخص نیست پس پاسخ مناسب با سوالتان دریافت نخواهید کرد . ابتدا یک شمای کلی از نوع مشکلتان بفرمایید تا برای دوستان در انجمن سوال مفهوم تر باشه تا به پاسخ مورد نظرتان برسید
نقل قول: چگونه جابجایی ستونها و ترتیب جدید را در DataGridView ذخیره کنیم
نقل قول:
نوشته شده توسط
Mercede3000
سلام دوستان،
من یک دیتاگریدویو دارم که به Dataset وصل است. وقتی ستونها را جابجا میکنم و ترتیب جدیدی به آن میدهم به محض بیرون
رفتن از برنامه و اجرای مجدد آن، ستونها به ترتیب قبلی خود برمیگردند.
سوال : چگونه و به چه ترتیبی جایگاه جدید ستونها را ذخیره کنیم که در اجراهای بعدی بهمان صورت باقی بمانند؟
با تشکر از لطف شما.
سلام و روز خوش
پرسش شما 2 بخش داره:
1- این که چجوری ترتیب ستون ها رو ذخیره کنیم و دوباره بخونیم که این مثل همه روشهای customize کردن نیازمند یک جدول مناسب هست،
و لازمه اش این هست که بدونین ترتیب نمایش ستونها چگونه مشخص میشه.
2- بخش بعدی این هست که چجوری با کد این ترتیب رو اعمال کنیم.
یک راه همین هست که در پست شماره 2 آمد (ولی بیانش چندتن گویا نبود) و اون این که ترتیب آمدن فیلدها در دستور select همین ترتیب نمایش اون ها هم هست،
پس کافی هست دستور رو تغییر بدیم - البته کاملا منطقی بنظر میاد و در عمل هم همه دیدیم که همینجور هست.
ولی من خودم اطمینان کامل ندارم که همیشه همینجور باشه و شاید در حالتهایی از این وضعیت پیروی نکنه.
گذشته از این، بهتر هست بجای دستکاری یک string و چسبوندن تکه های مختلف به هم مستقیما با خود دیتاگریدویو کار کنیم (البته نظر شخصی من هست)
نقل قول: چگونه جابجایی ستونها و ترتیب جدید را در DataGridView ذخیره کنیم
هر ستون دیتاگریدویو یک ویژگی به اسم displayindex داره که ترتیب نمایش اون رو مشخص میکنه.
همچنین یک ویژگی دیگه به اسم datapropertyname داره که مشخص میکنه به کدوم فیلد از جدول bind شده.
با این حساب یک جدول (مثلا به اسم ColumnsOrder) میسازیم و برای هر ستون این مقادیر رو در اون میریزیم.
حالا کافی هست یک حلقه به ازای هر ستون دیتاگریدویو بسازیم که براساس datapropertyname اون ستون مقدار displayindex رو از ColumnsOrder بخونه و اعمال کنه.
برای ذخیره وضعیت ستونها هم در رخداد form closing حلقه مشابهی میسازیم ولی این بار مقادیر رو ذخیره میکنیم.
نقل قول: چگونه جابجایی ستونها و ترتیب جدید را در DataGridView ذخیره کنیم
نقل قول:
نوشته شده توسط
mazoolagh
هر ستون دیتاگریدویو یک ویژگی به اسم displayindex داره که ترتیب نمایش اون رو مشخص میکنه.
همچنین یک ویژگی دیگه به اسم datapropertyname داره که مشخص میکنه به کدوم فیلد از جدول bind شده.
با این حساب یک جدول (مثلا به اسم ColumnsOrder) میسازیم و برای هر ستون این مقادیر رو در اون میریزیم.
حالا کافی هست یک حلقه به ازای هر ستون دیتاگریدویو بسازیم که براساس datapropertyname اون ستون مقدار displayindex رو از ColumnsOrder بخونه و اعمال کنه.
برای ذخیره وضعیت ستونها هم در رخداد form closing حلقه مشابهی میسازیم ولی این بار مقادیر رو ذخیره میکنیم.
سلام ،
ممنون از توجه شما ،
بنظر میرسه که با این راهی که دادید به نتیجه برسم.
تست میکنم و نتیجه رو میگم.
ممنون از لطف شما.