PDA

View Full Version : فارسی کردن header دیتاگرید از طریق کدنویسی



saeed hg
دوشنبه 10 مرداد 1390, 19:14 عصر
سلام دوستان. خیلی تو انجمن برنامه نویس در مورد فارسی کردن header دیتاگرید (datagrid) سرچ کردم اما راه حلهای ارائه شده کار نمیکرد مثلاً یکی ز دوستان گقته بود که کد زیر رو بنویسید



datagrid1.columns.item(0(="نام"


یکی دیگه از دوستان میگفت روی دیتاگرید راست کلیک کرده و گزینه ی editcolumn رو انتخاب کنید که این مورد اصلا ربطی به دیتاگرید نداره و مربوط میشه به datagridview

لطفاً اگه میشه توضیح بدید که چه جوری میشه از طریق کدنویسی برای هر کدوم از columnهای دیتاگرید header فارسی گذاشت و چه جوری میشه اندازه ی طول هر column رو در datagrid به دلخواه تغییر داد؟

teymoorei
دوشنبه 10 مرداد 1390, 19:23 عصر
سلام
من تعجب می کنم یه چیز به این سادگی رو پیدا نکردید .
این کدشه :
DataGrid.Columns(0).HeaderText = "نام"
DataGrid.Columns(0).Width = 85
عدد داخل پرانتز هم شماره هر ستون هستش .
درپناه حق

saeed hg
دوشنبه 10 مرداد 1390, 19:41 عصر
سلام
من تعجب می کنم یه چیز به این سادگی رو پیدا نکردید .
این کدشه :
DataGrid.Columns(0).HeaderText = "نام"
DataGrid.Columns(0).Width = 85
عدد داخل پرانتز هم شماره هر ستون هستش .
درپناه حق

ممنون.این کدی که شما نوشتید رو هم امتحان کرده بودم پیغام خطا میده و میگه که columnجزئ خاصیتهای datagrid نیست ، این کد برای datagridview هستش نه datagrid.

teymoorei
دوشنبه 10 مرداد 1390, 19:52 عصر
خواهش می کنم
1-دوست من من نام DataGridView رو خودم به DataGrid تغییر دادم و این موضوع اصلا ربطی به مسئله ی اصلی نداره .
2-شما مگه با vb.net برنامه نمینویسید که این حرف رو میزندید ؟
3- اگه خواستید برنامه تون رو بزارید تا ببینم .

saeed hg
دوشنبه 10 مرداد 1390, 20:10 عصر
teymoorei (http://barnamenevis.org/member.php?107702-teymoorei) عزیز شما سوال منو متوجه نشدید! من کار با دیتاگریدویو رو بلدم و راحت باهاش کار میکنم و هدر و طول فیلدها رو در دیتاگریدویو تغییر میدم. مشکل من با دیتاگرید هست! لطفاً اگه میتونید در مورد دیتاگرید توضیح بدید و یه کد در مورد دیتاگرید بزارید.
من با ویبی دات نت 2008 کار میکنم منتها در این پروژم به دلایلی(ناخواسته) از دیتاگرید استفاده کردم و حالا توش موندم ):

teymoorei
دوشنبه 10 مرداد 1390, 20:20 عصر
من هر چی توی vs گشتم این DataGrid خالی رو پیدا نکردم و تاجایی که یادمه این ابزار مال vb6 هستش که از ado.net پشتیبانی نمیکنه .
اگه راه دیگه ای برای پیداکردنش هست بگید ماهم بدونیم .

alimanam
دوشنبه 10 مرداد 1390, 20:53 عصر
با سلام


مشکل من با دیتاگرید هست! لطفاً اگه میتونید در مورد دیتاگرید توضیح بدید و یه کد در مورد دیتاگرید بزارید.

برای حل مشکلتون میتونین وقتی که دیتاگرید رو به دیتابیس متصل میکنین کپشن فیلدها رو در کد sql خودتون تغییر بدین میتونی از سورس ضمیمه کمک بگیری .

موفق باشید ./

saeed hg
سه شنبه 11 مرداد 1390, 00:15 صبح
ممنون از شما.مشکل روش شما اینه که نمیشه طول columnها رو تغییر داد من در آدرس زیر یه روشی پیدا کردم اما باهاش مشکل دارم
http://vbcity.com/forums/t/95940.aspx
من این طوری نوشتم





ddt.fill(dt)

Dim ts As New DataGridTableStyle

ts.MappingName = "Amir"

DGmember.TableStyles.Clear()

DGmember.TableStyles.Add(ts)

ts.AlternatingBackColor = Color.LightBlue

ts.BackColor = Color.AliceBlue

ts.HeaderBackColor = Color.SkyBlue

With DGmember.TableStyles("Amir")

.GridColumnStyles(1).Width = 120

.GridColumnStyles(1).HeaderText = "شماره ی کاربر"

.GridColumnStyles(1).Width = 150

.GridColumnStyles(1).HeaderText = "نام و نام خانوادگی"

.GridColumnStyles(2).Width = 70

.GridColumnStyles(2).HeaderText = "نام پدر"





End With




DGmember.DataSource = dt


اما ارور زیر رو میده
index out of range and ...

لطفاً راهنمایی کنید

alimanam
سه شنبه 11 مرداد 1390, 01:24 صبح
با سلام

دراینجا (http://msdn.microsoft.com/en-us/library/ms996485.aspx) مفصل توضیح داده میتونی مطالعه کنی !

موفق باشید ./

minaforotan
سه شنبه 11 مرداد 1390, 02:45 صبح
کار های مختلف با دیتا


DataGridView1.ColumnHeadersDefaultCellStyle.Font = New Font("Tahoma", 9, FontStyle.Regular, GraphicsUnit.Point)
DataGridView1.RightToLeft = RightToLeft.Yes
DataGridView1.AllowUserToAddRows = False
DataGridView1.AllowUserToDeleteRows = False
DataGridView1.ColumnHeadersDefaultCellStyle.BackCo lor = Color.PeachPuff
DataGridView1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single
DataGridView1.ColumnHeadersDefaultCellStyle.Alignm ent = DataGridViewContentAlignment.MiddleCenter
DataGridView1.DefaultCellStyle.Font = New Font("Tahoma", 8, FontStyle.Regular, GraphicsUnit.Point)
DataGridView1.DefaultCellStyle.BackColor = Color.Empty
DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
DataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToDisp layedHeaders
DataGridView1.AlternatingRowsDefaultCellStyle.Back Color = Color.BurlyWood
DataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.Raised
DataGridView1.GridColor = SystemColors.ControlDarkDark
' نام ستون مورد نظر.HeaderText = "نام مورد نظر"

اگه هم ستون رو تعریف نکردی و داری دیتا رو با بانک پر میکنی و ستون هاتو متناسب با جدولت خودکار میسازی از کد زیر میتونی استفاده کنی



ad.SelectCommand.CommandText = "select id 'کد ',nam 'نام ' from ashkhas "
Dim ds As New DataSet
ad.Fill(ds, "k")
DataGridView1.AutoGenerateColumns = True
DataGridView1.DataSource = ds
DataGridView1.DataMember = "k"

saeed hg
سه شنبه 11 مرداد 1390, 07:31 صبح
با سلام

دراینجا (http://msdn.microsoft.com/en-us/library/ms996485.aspx) مفصل توضیح داده میتونی مطالعه کنی !

موفق باشید ./

ممنون از دوستان. خانم minaforotan (http://barnamenevis.org/member.php?194388-minaforotan) گرامی ، توجه کنید که نوشتم دیتاگرید نه دیتاگرید ویو. من کار با دیتاگرید ویو رو بلدم.
دوست غزیز alimanam (http://barnamenevis.org/member.php?43498-alimanam) من آدرسی که داده بودی رو نگاه کردم و به روش زیر عمل کردم




Dim tableStyle As New DataGridTableStyle()
tableStyle.MappingName = "tblmember"

Dim column As New DataGridTextBoxColumn()
column.MappingName = "memberid"
column.HeaderText = "ID"
column.Width = 50
tableStyle.GridColumnStyles.Add(column)
column = New DataGridTextBoxColumn()
column.MappingName = "Name"
column.HeaderText = "Name"
column.Width = 60
tableStyle.GridColumnStyles.Add(column)
Me.DataGrid1.TableStyles.Add(tableStyle)





یه برکپوینت گذاشتم و چک کردمو دیدم که کدها اجرا میشه و اما روی ظاهر دیتاگرید اعمال نمیشه! کسی نظری داره؟ مشکل کجاست؟

dottnett
سه شنبه 11 مرداد 1390, 12:04 عصر
با سلام

آيا راهي وجود دارد تا با بتوانيم مقدار فيلد خاصي را در متغير مورد نظر وارد نماييم ؟

saeed hg
سه شنبه 11 مرداد 1390, 23:28 عصر
دوستان لطفاً راهنمایی کنید.
من منتظرم...

ghamarnia
پنج شنبه 11 دی 1393, 20:41 عصر
دوستان لطفاً راهنمایی کنید.
من منتظرم...
سلام
من یه تابع نوشتم که اسم ستون ها رو تو دیتاگریدویو تغییر بدم که وقتی برنامه اجرا میشه اسم ستون ها تغییر کنه!


public void gvTable1ColumnsName()
{
gvTable1.Columns[0].HeaderText = "نام";
gvTable1.Columns[2].HeaderText = "نام خانوادگی";
gvTable1.Columns[3].HeaderText = "سن";
gvTable1.Columns[4].HeaderText = "آدرس";
gvTable1.Columns[5].HeaderText = "معدل";
}