PDA

View Full Version : گفتگو: روش کار با دیتا گرید DataGride



pourang_us
دوشنبه 02 آذر 1388, 12:39 عصر
درود
از آنجایی که اکثر اعضای عزیز در مورد کار کردن با دیتا گرید سوالات زیاد و متنوعی دارند من پیشنهاد میکنم که هر کدام از دوستان علاقه مند به این مبحث نظرات نکات و آموزشها و کد های نمونه رو در این تاپیک قرار بدهند
البته در اینجا دوستانی هم هستند که به صورت حرفه ای کار با دیتا گرید را میدانند از آنها نیز صمیمانه تقاضا میشود تا در پیشبرد این نظر ما را یاری نمایند ضمنا اگر دوستان لینکهایی هم در این مورد دارند از تاپیکهای دیگه اونها رو هم در اینجا قرار بدهید البته با ذکر موضوع تاپیک
امیدورام که به سر انجام خوبی برسیم
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::
دوستان عزیز این تاپیک صرفا جهت درج نکات آموزشی و یا لینک سوالات دوستان دیگر ما در مورد دیتا گرید هست من از با عرض پوزش از دوستانی که در این تاپیک سوال مطرح نموده اند صرفا جهت خارج نشدن از فرضیه وجودی این تاپیک و رسیدن دوستان به جواب هاشون سوالات اونها رو با هماهنگی مدیر مربوطه تالار حذف میکنم
امیدوارم اگر چنانچه نکته ای به ذهن هر کدوم از دوستان در این مورد رسید و یا خودشون مطلب جدیدی در این مورد فرا گرفتند باعث خوشحالی من هست که اون رو جهت دسترسی دیگران به این مطالب در اینجا قرار بدهند.
ضمنا سوالات خودتون رو هم توی تاپیک های دیگر مطرح بنمایید.

باز هم از همه دوستان عزیز سپاس گذارم

sh2007
دوشنبه 02 آذر 1388, 13:34 عصر
من هم از تمامي دوستاني كه بصورت حرفه اي با ديتاگريد كار مي كنن خواهش مي كنم تجربيات خوشون رو توي همين تايپك كه دوست عزيرمان گذاشتن بذارن تا بتونيم يه تايپيك كامل و جامع درباره ديتاگريد داشته باشيم
ممنون

DoDoklak
دوشنبه 02 آذر 1388, 16:03 عصر
برای حرفه ای شدن باید مطالعه کرد

کتاب زیر تمامی اصول کار با data Grid View رو توضیح داده اگه بخونیش دیگه آخر برنامه نویسی با این ابزار میشی

آموزش جامع کار با Data Grid View

http://www.divshare.com/download/9369755-584

pourang_us
دوشنبه 02 آذر 1388, 16:20 عصر
به نظر من که بسیار فایل جالبی بود
اما کدها به زبان C هستند. البته تبدیل کردن اونها با استفاده از ساتهای مبدل کار ساده ای هست و یا حد اقل درک کامل کد. اما از دوستان کسی مایل هست که این رو به فارسی ترجمه کنه با توجه به اینکه 69 صفحه هم هست؟
در صورت تمایل یا در دسترس بودن منابع فارسی اونها رو هم قرار بدهید

متشکرم

pourang_us
سه شنبه 03 آذر 1388, 09:05 صبح
درود

سوال در خصوص ثبت تغییرات در دیتا گرید

http://www.barnamenevis.org/forum/showthread.php?t=191735

pourang_us
دوشنبه 09 آذر 1388, 13:25 عصر
انتخاب چند سطر از یک datagridview

http://barnamenevis.org/forum/showthread.php?t=192531

pourang_us
دوشنبه 09 آذر 1388, 14:29 عصر
کار با دیتاتیبل و نشون ندادن بعضی از ستوناش تو دیتا گرید ویو


http://barnamenevis.org/forum/showthread.php?p=551511

pourang_us
دوشنبه 09 آذر 1388, 14:32 عصر
ذخیره ، ویرایش و حذف اطلاعات در datagridview


http://barnamenevis.org/forum/showthread.php?t=74531

pourang_us
دوشنبه 09 آذر 1388, 14:44 عصر
پرش به آخرین رکورد وارد شده در دیتا گرید ویو


http://www.barnamenevis.org/forum/showthread.php?t=148515

sh2007
پنج شنبه 12 آذر 1388, 10:19 صبح
دوستان روش كار با خطا و پروايدر و و يا اررو هندلينگ در مورد ديتاگريد نيز مطلبي دارن ؟
ممنون

mmd2009
پنج شنبه 12 آذر 1388, 14:24 عصر
دوستان یه اموزش بگید که چطور میشه اولا یک گریگ ویو رو درست کرد بر اساس اطلاعات بانک اکسس و چطور میشه که بعد از تغییرات در خود بانک اکسس به طور هم زمان در گرید ویو هم تغییر کنه مثلا من تونستم کاری کنم اطلاعات درون بانک اکسس رو نمایش بدم ولی متاسفانه هر کاری میکنم که اطلاعات بعد از ویرایش در بانک اکسس دوباره در گریگ ویو نمایش داده شوند امکان پذیر نبود و فقط اطلاعاتی که با اول نمایش داده رو همیشه نشون میده

مرسی اگر کمک کنید

mgh64120
پنج شنبه 12 آذر 1388, 20:34 عصر
دوست عزيز شما بايد بعد از اعمال تغييرات در اطلاعات دوباره اطلاعات رو از بانك اكسس فراخواني كني.
بگو اطلاعات رو چطوري از طريق برنامه تغيير ميدي؟ از طريق خوده ديتاگريده يا با كنترل هاي ديگه مثل TextBox ؟

armin8651
جمعه 13 آذر 1388, 00:40 صبح
اینم تابعی برای اینکه سطرهای DataGrideView رو با دو رنگ مختلف به صورت یکی در میون ببینید تا خوندنش راحتتر باشه.



Private Sub DG_backcolor()
Dim i As Integer
For i = 1 To (DataGrideView1.Rows.Count - 1) Step 2
DataGrideView1.Rows(i).DefaultCellStyle.BackColor = Color.Lavender
Next
End Sub

sari-1369
جمعه 13 آذر 1388, 01:22 صبح
برای اینکه سطر های DGV یکی در میون با هم تفاوت داشته باشن فقط کافیه پروپرتی AlternatingRowsDefaultCellStyle رو مقدار دهی کنی .

viper2009
جمعه 13 آذر 1388, 17:46 عصر
سلام دوستان

چطور اطلاعات یک دیتا گرید ویو رو در دیتا گرید ویو دیگری بدون ذخیره در دیتا بیس انتقال بدم؟

و چطور با انتخاب هر سطری از دیتا گرید اول تمام اطلاعات یک سطر در دومین دیتا گرید اضافه بشه؟ و بدون پاک شدن سطر اولی با انتخاب سطرهای دلخواه به سطرهای بعدی دیتا گرید دومی اضافه شود؟

Mani_rf
شنبه 14 آذر 1388, 01:49 صبح
اینم تابعی برای اینکه سطرهای DataGrideView رو با دو رنگ مختلف به صورت یکی در میون ببینید تا خوندنش راحتتر باشه.



Private Sub DG_backcolor()
Dim i As Integer
For i = 1 To (DataGrideView1.Rows.Count - 1) Step 2
DataGrideView1.Rows(i).DefaultCellStyle.BackColor = Color.Lavender
Next
End Sub



دوست عزیز روش بهتر از آنچه شما فرمودید استفاده از Propery خود DataGrid است .
برای انجام این کار می توان از خاصیت
AlternatingRowsDefaultCellStyle
است.
نگاهی به این خاصیت در قسمت Properties مربوط به DataGridView بی اندازید.

armin8651
شنبه 14 آذر 1388, 09:42 صبح
ممنون، این خاصیت AlternatingRowsDefaultCellStyle هم خیلی خوبه.

sari-1369
شنبه 14 آذر 1388, 23:22 عصر
سلام دوستان

چطور اطلاعات یک دیتا گرید ویو رو در دیتا گرید ویو دیگری بدون ذخیره در دیتا بیس انتقال بدم؟

و چطور با انتخاب هر سطری از دیتا گرید اول تمام اطلاعات یک سطر در دومین دیتا گرید اضافه بشه؟ و بدون پاک شدن سطر اولی با انتخاب سطرهای دلخواه به سطرهای بعدی دیتا گرید دومی اضافه شود؟

ببین این کارتو راه میندازه .

mmd2009
یک شنبه 15 آذر 1388, 06:01 صبح
دوست عزيز شما بايد بعد از اعمال تغييرات در اطلاعات دوباره اطلاعات رو از بانك اكسس فراخواني كني.
بگو اطلاعات رو چطوري از طريق برنامه تغيير ميدي؟ از طريق خوده ديتاگريده يا با كنترل هاي ديگه مثل TextBox ؟

مرسی از اینکه دارید کمکم میکنید :قلب:

ببین دوست عزیز من مشکلم همین فراخوانی دوباره بانک هستش من اطلاعات رو اری کردم که کاربر از textbox وارد کنه و میخوام بعد از اینکه مثلا دکمه نمایش کل کاربران رو زد بتونه تمامی کاربران رو ببینه و بعد از اینکه 1 ساعت دیگه خواست دوباره برنامه رو ببینه و مثلا 10 نفر دیگه ثبت نام کردن دوباره بتونه علاوه بر اون کاربران این 10 نفر رو هم بتونه ببینه

pourang_us
دوشنبه 16 آذر 1388, 09:24 صبح
چطور می تونم از رویداد DataGridVeiwCheckBoxColumn در مواقع انتخاب False و True بودن CheckBox استفاده کنم؟



http://barnamenevis.org/forum/showthread.php?t=193595

pourang_us
دوشنبه 16 آذر 1388, 09:27 صبح
AutoNumber برای دیتاگرید



http://barnamenevis.org/forum/showthread.php?t=193108

pourang_us
دوشنبه 16 آذر 1388, 09:35 صبح
رویداد RowAdded کنترل DataGridView


http://barnamenevis.org/forum/showthread.php?t=193077

sepide1
دوشنبه 16 آذر 1388, 10:32 صبح
ببخشد میشه یک نمونه کوچک از یک دیتاگرید ویو بذارید که داخل همان گرید دکمه ای برای delete باشه که داخل دکمه کد مربوطه نوشته شده باشد البته دکمه گذاشتن روی گرید را بلدم ولی نمی دونم چطوری براش کد بنویسم لطفا اگر جواب می دهید در قالب یک برنامه بسیار کوچک جواب بدید

pourang_us
دوشنبه 16 آذر 1388, 14:58 عصر
توليد خطا در هنگام ورود داده نامعتبر در DataGridView1


http://barnamenevis.org/forum/showthread.php?t=190368

sari-1369
دوشنبه 16 آذر 1388, 19:52 عصر
ببخشد میشه یک نمونه کوچک از یک دیتاگرید ویو بذارید که داخل همان گرید دکمه ای برای delete باشه که داخل دکمه کد مربوطه نوشته شده باشد البته دکمه گذاشتن روی گرید را بلدم ولی نمی دونم چطوری براش کد بنویسم لطفا اگر جواب می دهید در قالب یک برنامه بسیار کوچک جواب بدید

فکر کنم این نمونه کمکت کنه .

mgh64120
دوشنبه 16 آذر 1388, 20:00 عصر
من تونستم کاری کنم اطلاعات درون بانک اکسس رو نمایش بدم ولی متاسفانه هر کاری میکنم که اطلاعات بعد از ویرایش در بانک اکسس دوباره در گریگ ویو نمایش داده شوند امکان پذیر نبود و فقط اطلاعاتی که با اول نمایش داده رو همیشه نشون میده
دوست عزيز شما در بالا گفتيد كه تونستيد اطلاعاتتون رو درون ديتاگريد نمايش بديد.
خوب شما بايد كدي رو كه براي اين كار نوشتيد رو در موقع ويرايش فراخواني كنيد.
مثلاً اگر در رويداد Form_Load فرم قرار داره :



‍Call Form1_Load(Nothing,Nothing)


اگه باز هم مشكلي بود برام كدهاي مربوط به نمايش ديتاگريدت رو كه نوشتي بزار تا بتونم بهتر راهنمايت كنم.:چشمک:

mmd2009
سه شنبه 17 آذر 1388, 04:30 صبح
ببین دوست عزیز من اصلا کدی ننوشتم و فقط رفتم بانک رو به گرید ویو معرفی کردم

اصلا این گرید ویو رو من متوجه نمیشم

اگه میشه فقط یک اموزش نمایش اطلاعات اکسس با vb.net بذارید تا متوجه بشم

چون فقط اینطوری متوجه میشم

یه ادم با معرفت بیاد یک برنامه درست بکنه که اطلاعات بانک اکسس رو نمایش بده درون گرید ویو با برنامه mvs 2005 و زیان vb.net بعد بذاره اینجا تا منم یاد بگیرم باور کنید اونایی که بلدن کار 1 دقیقه اشون هم نیست که این برنامه رو درست بکنن

خواهشا یکی این کارو بکنه

viper2009
سه شنبه 17 آذر 1388, 12:39 عصر
سلام دوست عزیز

چون VB من 2008 هست می ترسم نتونی Add کنی به پروژه خودت پس کتبی می نویسم انجام بده
یک پروژه ایجاد کن یک بانک Access با نام DB یک تیبل هم بساز داری سه فیلد ID,Name,Last به فرمت 2003 هم ذخیره کن در فولدر Debug پروژه ات کنار فایل اجرایی برنامه ات

بر روی فرم یک دیتا گرید قرار بده با نام DGV و سه تا فیلد اضافه کن با همان نامهای فیلد های جدولت و در قسمت خصوصیات هر یک از فیلد ها قسمت مربوط به DataProperty نامهای هر فیلد را مانند نامشان کپی یا بنویس مثلاً نام فیلد ID است DataProperty مساوی ID قرار بده و OK کن

می تونی یک Navigator هم اضافه کنی با نام BN

حالا کد نویسی:
1- استفاده از موتوری برای ایجاد اتصال به بانک مورد نظر :
که برای Access از Oledb استفاده می شه
در بالای کلاس می نویسی Import System.Data.Oledeb

2- ساخت کانکشن : زیر کلاس و یا محل معرفی متغیر Global می نویسی
Dim StrCon As String ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source = DB.mdb"
مراحل بعد ایجاد متغیر ها
Dim Con As New OledbConnection(StrCon)
Dim Da As OledbAdapter
Dim Ds As New DataSet
Dim Bs As New BindingSource

3- در قسمت فرم لود می نویسی
Da = New OledbAdapter("Select * From Table1",Con)
Da.Fill(Ds,"Table1")

Bs.DataSource = Ds
Bs.DataMember = "Table1"

BN.BindingSource = Bs
DGV.DataSource = Bs

اگر از Navigator استفاده نمی کنی
فقط DGV.DataSource = Ds.Tabl1(0) کافی است

موفق باشی

pourang_us
سه شنبه 17 آذر 1388, 14:30 عصر
برگرفته از MSDN

__________________________________________________ _____________________
DataGridView Class

از این کلاس برای نمایش اطلاعات به صورت سلولی با قابلیت تنظیم توسط کاربر استفاده میگردد.
این کلاس در NameSpace زیر قرار دارد.

System.Windows.Forms


نحوه کار:
معرفی کلاس:

<ComVisibleAttribute(True)> _
<ClassInterfaceAttribute(ClassInterfaceType.AutoDis patch)> _
Public Class DataGridView
Inherits Control
Implements ISupportInitialize


استفاده :

Dim instance As DataGridView


نکته:
این کنترل برای شما نحوه نمایش اختصاصی از اطلاعات یک جدول را فراهم میکند.
DataGridView به شما اجازه میدهد تا سلول ها و سطر و ستون و حاشیه ها را از طریق خواصی مانند:

DefaultCellStyle
CellBorderStyle
GridColor
ColumnHeadersDefaultCellStyle

بنا به دلخواه خود تنظیم نمایید.
یک دیتا گرید میتواند برای نمایش داده ها با یا بدون منبع داده DataSource مورد استفاده قرار گیرد.
شما میتوانید بدون مشخص کردن منبع داده ستونها و ردیفها که شامل اطلاعات باشند را ایجاد نمایید.
شما میتوانید خواص DataMember و DataSource یک دیتا گرید رابه یک منبع داده مقید کنید و از اطلاعات آن منبع داده در دیتا گرید استفاده نمایید.
هنگامی که شما به حجم بالای داده رو به رو هستید قابلیت VirtualMode به شما کمک میکند از حافظه نهان Cache برای نمایش یک زیر مجموعه استفاده نمایید.


با وجود اینکه کنترل DataGrideView جایگزین کنترل DataGrid شده است اما قابلیتها و امکانات کنترل قبلی را همچنان حفظ نموده است.


کد زیر یک نمونه از دیتا گرید ویو بدون منبع UnBound را به شما نشان می دهد
برای اجرا کد زیر را در یک فرم که حاوی یک دیتا گرید ویو به نام dataGridView1 است و سه دکمه Button به نامهای:

deleteRowButton
ledgerStyleButton
addNewRowButton


قرار دهید. و خط به خط کد را بررسی نمایید . عملکرد و تنظیمات اولیه را مشاهد کنید.




___________________________
Private Sub ledgerStyleButton_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles ledgerStyleButton.Click


' ساخت یک Stylle جدید برای سلول.
Dim style As New DataGridViewCellStyle
With style
.BackColor = Color.Beige
.ForeColor = Color.Brown
.Font = New Font("Verdana", 8)
End With


' اعمال سبک فرمت به عنوان پیش فرض سلول.
dataGridView1.AlternatingRowsDefaultCellStyle = style
ledgerStyleButton.Enabled = False
End Sub


Private Sub SetUpDataGridView()


Me.Controls.Add(dataGridView1)
dataGridView1.ColumnCount = 5


With dataGridView1.ColumnHeadersDefaultCellStyle
.BackColor = Color.Navy
.ForeColor = Color.White
.Font = New Font(dataGridView1.Font, FontStyle.Bold)
End With


With dataGridView1
.EditMode = DataGridViewEditMode.EditOnEnter
.Name = "dataGridView1"
.Location = New Point(8, 8)
.Size = New Size(500, 300)
.AutoSizeRowsMode = _
DataGridViewAutoSizeRowsMode.DisplayedCellsExceptH eaders
.ColumnHeadersBorderStyle = _
DataGridViewHeaderBorderStyle.Raised
.CellBorderStyle = _
DataGridViewCellBorderStyle.Single
.GridColor = SystemColors.ActiveBorder
.RowHeadersVisible = False


.Columns(0).Name = "Release Date"
.Columns(1).Name = "Track"
.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns(2).Name = "Title"
.Columns(3).Name = "Artist"
.Columns(4).Name = "Album"


' ایتالیک کردن سطر چهارم دیتاگرید.
.Columns(4).DefaultCellStyle.Font = _
New Font(Control.DefaultFont, _
FontStyle.Italic)


.SelectionMode = _
DataGridViewSelectionMode.FullRowSelect
.MultiSelect = False


.BackgroundColor = Color.Honeydew


.Dock = DockStyle.Fill
End With


End Sub


Private Sub PopulateDataGridView()


' ساخت آرایه برای هر ردیف اطلاعات.
Dim row0 As String() = {"11/22/1968", "29", "Revolution 9", "Beatles", "The Beatles [White Album]"}
Dim row1 As String() = {"4/4/1960", "6", "Fools Rush In", _
"Frank Sinatra", "Nice 'N' Easy"}
Dim row2 As String() = {"11/11/1971", "1", _
"One of These Days", "Pink Floyd", "Meddle"}
Dim row3 As String() = {"4/4/1988", "7", "Where Is My Mind?", _
"Pixies", "Surfer Rosa"}
Dim row4 As String() = {"5/1981", "9", "Can't Find My Mind", _
"Cramps", "Psychedelic Jungle"}
Dim row5 As String() = {"6/10/2003", "13", _
"Scatterbrain. (As Dead As Leaves.)", "Radiohead", _
"Hail to the Thief"}
Dim row6 As String() = {"6/30/1992", "3", "Dress", _
"P J Harvey", "Dry"}


' اضافه کردن ردیف برای هر آرایه.
With Me.dataGridView1.Rows
.Add(row0)
.Add(row1)
.Add(row2)
.Add(row3)
.Add(row4)
.Add(row5)
.Add(row6)
End With


' تغییر ترتیب ستونها برای نمایش.
With Me.dataGridView1
.Columns(0).DisplayIndex = 3
.Columns(1).DisplayIndex = 4
.Columns(2).DisplayIndex = 0
.Columns(3).DisplayIndex = 1
.Columns(4).DisplayIndex = 2
End With


End Sub




درنهایت سعی میکنم به همین روش ادامه بدهم دوستان و بزرگواران نیز اگر ایرادی در مطالب ارایه شده مشاهده کردند و یا پیشنهادی داشتند من استقبال میکنم


موفق باشد

pourang_us
چهارشنبه 18 آذر 1388, 09:04 صبح
وارد کردن داده در DataGrigView بصورت مستقیم .

http://barnamenevis.org/forum/showthread.php?t=194057

barat121
پنج شنبه 19 آذر 1388, 12:28 عصر
از تمام دوستانی که خالصانه اطلاعات خود را در اختیار علاقمندان قرار می دن صمیمانه تشکر میکنم .

mgh64120
شنبه 21 آذر 1388, 09:07 صبح
دوست عزيز mmd2009
با عرض پوزش چند روز كامپيوترم مشكل داشت.
اينم يه پروژه اماده همراه با نمونه چاپي كه توسط دوست عزيزمون Ali Manam تهيه شده.
ادرسش تو سايت هست ولي پيداش نكردم. ولي اون رو در فايل ضميمه برات ميزارم.
موفق باشي!

pourang_us
شنبه 21 آذر 1388, 10:12 صبح
خاصيت اتوكمپلت در ديتاگريد Auto complete


http://barnamenevis.org/forum/showthread.php?t=194233

pourang_us
چهارشنبه 25 آذر 1388, 08:43 صبح
دیتا گرید سفارشی

http://barnamenevis.org/forum/showthread.php?t=195196

pourang_us
چهارشنبه 25 آذر 1388, 08:44 صبح
چطور میشود که اطلاعات درون یک گرید ویو رو پاک کرد


http://barnamenevis.org/forum/showthread.php?t=195260

pourang_us
چهارشنبه 25 آذر 1388, 08:45 صبح
بدست آوردن تعداد سطرها در DataGrid


http://barnamenevis.org/forum/showthread.php?t=195271

pourang_us
چهارشنبه 25 آذر 1388, 10:58 صبح
در مورد کنترل DataGrid
رنگی کردن سطر ها


http://www.barnamenevis.org/forum/showthread.php?t=35958

pourang_us
چهارشنبه 25 آذر 1388, 10:59 صبح
در vs.net 2005 برای رفتن به یک سطر در دیتا گرید چه کدی را باید زد ؟



http://www.barnamenevis.org/forum/showthread.php?t=35265

pourang_us
چهارشنبه 25 آذر 1388, 11:01 صبح
جستجو کردن در جدول و نمایش در گرید (http://www.barnamenevis.org/forum/showthread.php?t=35197)



http://www.barnamenevis.org/forum/showthread.php?t=35197

pourang_us
چهارشنبه 25 آذر 1388, 11:03 صبح
کنترل تغییرات در دیتاگرید (http://www.barnamenevis.org/forum/showthread.php?t=34833)


http://www.barnamenevis.org/forum/showthread.php?t=34833

farrokhi
جمعه 27 آذر 1388, 22:36 عصر
چطور کاری کنم وقتی فرم باز میشه از دیتاگرید هیچ سطری(همیشه سطر اول در حالت انتخاب است) انتخاب نشده باشه

saadi2
شنبه 28 آذر 1388, 00:33 صبح
چطور کاری کنم وقتی فرم باز میشه از دیتاگرید هیچ سطری(همیشه سطر اول در حالت انتخاب است) انتخاب نشده باشه




DataGridView1.ClearSelection()

karim orooji
شنبه 28 آذر 1388, 13:39 عصر
با سلام به دوستان
دوستان به كمكتون نياز فوري دام
من يك گريد دارم كه حدود 200تا اسم داره كه از بانك ميخونه . توي گريد ميريزه ميخوام از اون اسم ها برام حدود 25 نفر انتخاب كنه و توي listbox و يا توي textbox و يا label جداگانه برام بريزه:گیج::گیج::گیج:
نكته : اين اسامي كه انتخاب ميشند بار دوم كه نفرات ديگه انتخاب ميشند نبايد تكراري نباشند

زماني كه رو يكي از سطرهاي گريد كليد كنم بياد محتواي برام توي كادر نشون بده
مثل نام و نام خانوادگي و....

pourang_us
یک شنبه 29 آذر 1388, 15:33 عصر
ویرایش ی datagrid و ذخیره ی آن در database (http://barnamenevis.org/forum/showthread.php?p=645124#post645124)


http://barnamenevis.org/forum/showthread.php?p=645124#post645124

pourang_us
یک شنبه 29 آذر 1388, 15:34 عصر
انتخاب از grid به صورت random (http://www.barnamenevis.org/forum/showthread.php?t=195943)


http://www.barnamenevis.org/forum/showthread.php?t=195943

pourang_us
یک شنبه 29 آذر 1388, 16:04 عصر
رنگي كردن يك كلر يا فونت ديتاگريد در شرايط خاص

تعویض رنگ پس زمینه ستونهایی با اطلاعات خاص


http://www.barnamenevis.org/forum/showthread.php?t=195806

sh2007
دوشنبه 30 آذر 1388, 11:54 صبح
رنگي كردن رديفهاي ديتاگريد يعني يكي در ميان AlternatingRows

http://barnamenevis.org/forum/showthread.php?t=195769

pourang_us
دوشنبه 07 دی 1388, 08:39 صبح
دسترسی به مقدار ID در گرید ویو ؟ (http://barnamenevis.org/forum/showthread.php?t=196807)


http://barnamenevis.org/forum/showthread.php?t=196807

pourang_us
دوشنبه 07 دی 1388, 08:54 صبح
ذخیره کردن اطلاعات دیتاگرید در بانک


http://barnamenevis.org/forum/showthread.php?p=876477&posted=1#post876477

pourang_us
دوشنبه 07 دی 1388, 10:24 صبح
ديتا گريد ويو و مقدار عددي

http://barnamenevis.org/forum/showthread.php?t=196960

sh2007
پنج شنبه 10 دی 1388, 09:34 صبح
تاريخ و ديتاگريد
http://barnamenevis.org/forum/showthread.php?t=197425
http://barnamenevis.org/forum/showthread.php?t=162369

pourang_us
شنبه 12 دی 1388, 14:25 عصر
ردیف در دیتا گرید (http://barnamenevis.org/forum/showthread.php?t=197560)



http://barnamenevis.org/forum/showthread.php?t=197560

masoud_zarifi
چهارشنبه 23 دی 1388, 23:31 عصر
سلام خدمت دوستان عزیز
من می خوام اطلاعات یک سطر از یک datagride رو بردارم یعنی به میخوام آخرین مقدار کلید اصلی رو بریزم توی یک lable.text البته (توی c#)
با تشکر

masoud_zarifi
چهارشنبه 23 دی 1388, 23:34 عصر
سوال دیگه ای هم داشتم اونم اینه که توی یک فرم از دو تا datagrideview استفاده کردم و اسماشم متفاوت انتخاب کردم ولی اطلاعات اولی رو توی دومی میاره (نه به طور کامل) مثلا وقتی توی دومی select می کنم که دو تا از ستونها نمایش داده شود بازم همه ستونا نمایش داده میشوند.

pourang_us
یک شنبه 02 اسفند 1388, 09:27 صبح
فرمت یکی از ستونها در DataGridView (http://barnamenevis.org/forum/showthread.php?t=202232)



http://barnamenevis.org/forum/showthread.php?t=202232

Hossis
دوشنبه 24 اسفند 1388, 21:10 عصر
ممکنه يک DGV رو طوري از بانک مقدار دهي کنيم که فقط برخي از فيلدها رو بگيره و بقيه رو کاري نداشته باشه
اين رو مي دونم که مي شه اول همه رو بارگذاري کرده و بعد ستونهاي دلخواه رو حذف کنيم ولي چون يک فيلد از من ، حجمش خيلي زياده، بايد کاري کنم که از همون اول بارگزاري نشه و گرنه برنامه هنگ مي کنه ،‌ بنابراين در حين بارگزاري بايد برخي فيلدها استثنا بشن؟

Shahram_Shobeiri
سه شنبه 25 اسفند 1388, 10:02 صبح
آقا ما یه کلاس از تو codeproject پیدا کردیم واسه پرینت گرفتن از دیتا گرید. البته واسه پرینت گرفتن از داده های لاتین طراحی شده بود. من یه چیزایی به اون اضافه کردم به شرح زیر :
- راست به چپش کردم
- امکان پرینت گرفتن landscape رو بهش اضافه کردم
- امکان رنگی کردن یکی در میون ردیف ها رو براش ایجاد کردم
- ...
خلاصه یه ابزار گزارش گیری ساده است. امیدوارم دوستان کامل ترش کنند و واسه استفاده بقیه بگذارند.

iman_me
شنبه 14 فروردین 1389, 12:44 عصر
سلام
کسی میدونه چطور میشه سطر های دیتا گرید رو به صورت الفبای فارسی مرتب کرد
اگه کسی میدونه ممنون میشم بگه

pourang_us
دوشنبه 16 فروردین 1389, 11:42 صبح
دسترسي به يك ركورد از DataGridView (http://barnamenevis.org/forum/showthread.php?t=212605)



http://barnamenevis.org/forum/showthread.php?t=212605

pourang_us
دوشنبه 16 فروردین 1389, 11:46 صبح
ترتیب حروف الفبا در گرید ویو (http://barnamenevis.org/forum/showthread.php?t=211899)



http://barnamenevis.org/forum/showthread.php?t=211899

armin8651
سه شنبه 17 فروردین 1389, 16:22 عصر
آقا ما یه کلاس از تو codeproject پیدا کردیم واسه پرینت گرفتن از دیتا گرید. البته واسه پرینت گرفتن از داده های لاتین طراحی شده بود. من یه چیزایی به اون اضافه کردم به شرح زیر :
- راست به چپش کردم
- امکان پرینت گرفتن landscape رو بهش اضافه کردم
- امکان رنگی کردن یکی در میون ردیف ها رو براش ایجاد کردم
- ...
خلاصه یه ابزار گزارش گیری ساده است. امیدوارم دوستان کامل ترش کنند و واسه استفاده بقیه بگذارند.
یه برنامه کوچیک از نحوه استفادش بذاری خیلی خوب میشه ، ممنون

Shahram_Shobeiri
سه شنبه 17 فروردین 1389, 23:11 عصر
Dim Columns_List As New List(Of String)
Columns_List.Add("نام عملیات")
Columns_List.Add("درصد از کل")
Columns_List.Add("هزینه")
Columns_List.Add("درصد پیشرفت")
Columns_List.Add("هزینه شده")
PrintDGV.Print_DataGridView(DataGridView_form_bazd id, TextBox_title.Text, True, True, Columns_List, CheckBox_landscape.Checked)

نام عملیات، درصد از کل و ... اسم ستون هایی از datagridview هستند که می خواهید در نسخه چاپی دیده بشوند. باقیش هم که فکر کنم معلوم باشه

msadgd
شنبه 21 فروردین 1389, 14:01 عصر
سلام به دوستان
من یه دیتاگرید دارم که ستون اولش رو ازنوع DataGridViewButtonColumn قرار دادم. توی تنظیمات خود ستون هم مقدار text اون رو برابر با "انتخاب" قرار دادم. قصدم اینه که اول هر سطری یک دکمه انتخاب باشه که کاربر با زدن اون دکمه ..... کدانتخاب متن رو نوشتم و کار می کنه. مشکل من اینه که روی دکمه های اول سطرها هیچی نمی نویسه در صورتی که باید روی اونها متن "انتخاب" نوشنه بشه.
ممنون بابت راهنماییتون.

Hell Lord
دوشنبه 01 شهریور 1389, 21:00 عصر
سلام.
چند ساعت هست که دارم دنبال این میگردم که دیتا گرید (dataGridView) را چطور رفرش کنم. اما هر جور که جستجو و امتحان کردم نتیجه ی درستی نداد ؛خیلی از کد ها را نیز امتحان کردم!
خواهش میکنم کمک کنید.
بنده یک دیتا گرید دارم که به یک دیتا ست متصل است و پس از تغییرات میخواهم رفرش شود!

پیشاپیش ممنون.

ostovarit
دوشنبه 01 شهریور 1389, 21:08 عصر
سلام.
چند ساعت هست که دارم دنبال این میگردم که دیتا گرید (dataGridView) را چطور رفرش کنم. اما هر جور که جستجو و امتحان کردم نتیجه ی درستی نداد ؛خیلی از کد ها را نیز امتحان کردم!
خواهش میکنم کمک کنید.
بنده یک دیتا گرید دارم که به یک دیتا ست متصل است و پس از تغییرات میخواهم رفرش شود!

پیشاپیش ممنون.

چرا دوباره بایندش نمیکنی؟

Hell Lord
دوشنبه 01 شهریور 1389, 21:18 عصر
چرا دوباره بایندش نمیکنی؟
دیتا گرید خالی تحویلمان میدهد این وی بی پدر سگ! :عصبانی++:

ostovarit
دوشنبه 01 شهریور 1389, 21:21 عصر
دیتا گرید خالی تحویلمان میدهد این وی بی پدر سگ! :عصبانی++:

خودتو کنترل کن :لبخند:
دیتابیس چک کن اگر داده داری باید نشون بده!
نام دیتاگرید که بایند کردی و select رو چک بکن ...
کدت رو بزار چون همچین چیزی ممکن نیست باید یک خطا تو کدت داشته باشی ...

Hell Lord
دوشنبه 01 شهریور 1389, 21:28 عصر
همه چیز درست است، عملیات حذف هم انجام میشود ....
دیتا ست که توسط ویژوال ساخته شده، دیتاگرید هم که اطلاعاتش را دستی وارد کردم. (کدی در کار نیست)
فقط زمانی که این کد را برای بعد از عملیات Query مینویسم، دیتاگرید تغییر میکند، اما، خالی میشود!
Query ها هم اجرا میشود.

datagridview1.datasource = projectDataSet1
این باید باشد؟

ostovarit
دوشنبه 01 شهریور 1389, 22:21 عصر
دیتا ست که توسط ویژوال ساخته شده، دیتاگرید هم که اطلاعاتش را دستی وارد کردم. (کدی در کار نیست)


اگر منظورتون اینه که ویزاردی کار کردید که باید بعد از حذف بایند کنید باز ... ( نبایدم مشکلی باشه!)
یک تستی بکنید و گرید رو با کد بایند کنید و در EditCoulmn گرید فیلدها رو در DataProperty مشخص کنید

کد بایند:


SqlDataAdapter da = new SqlDataAdapter("select * from RegCustomer", new myConnection().Cnn);
myDataSet ds = new myDataSet();
SqlCommandBuilder scb = new SqlCommandBuilder(da);
da.Fill(ds.RegCustomer);
dataGridViewSpesific1.DataSource = ds.RegCustomer;

Mehdi6052
سه شنبه 02 شهریور 1389, 15:40 عصر
با سلام

آقای Hell Lord (http://barnamenevis.org/forum/member.php?u=139576) برای اینکه تغییرات در دیتاگرید اعمال شود باید بعداز عمل ذخیره، دیتاست را Clear نمایی و دوباره آن را از اطلاعات پر نمایی.

ho_612
سه شنبه 02 شهریور 1389, 18:11 عصر
آقا دستور اضافه کردن یه Button به یکی از ستون های دیتا گرید چیه؟؟
می خوام هروقت روی سلولی کلیک کرد به شکل دکمه درآد

masoudcarpet
سه شنبه 02 شهریور 1389, 22:16 عصر
من یه برنامه دیدم وقتی جستجو میکردیم دیتا گرید رکوردهاش به ترتیب های لایت میشد و این انتخاب به سمت رکورد جستجو شده حرکت میکرد و وقتی به رکورد مورد نظر می رسید STOP میکرد اگه میشه بگید چه کار کنم که وقتی جستجو میکنم به جای اینکه فقط رکورد مورد نظرم فیلتر بشه و نمایش داده بشه همه رکوردها باشن و فقط انتخاب بره روی رکورد مذکور ، ضمنا با روشی که توی اون برنامه توضیح دادم
ضمنا" من با این کد جستجو میکنم:

loaddata(" where (" + search + " like N'%" + TextBox1.Text + "%')")

Hell Lord
سه شنبه 09 شهریور 1389, 04:16 صبح
ببخشید بنده باز مزاحم شدم، من اگر دیتا گریدم به هیچ دیتا سورسی متصل نباشد و بخواهم ردیف اضاف کنم به صورت دستی، چطور هستش؟
یک ردیف را فکر کنم میتوانم ایجاد کنم، اما ستون هایش چی!؟
با توجه به اینکه از قبل 3 سطر در بالا ایجاد کرده ام ( همان ردیفی که ستون های مشخصه ی اطلاعات درش وجود دارند(ستون های دیفالت دیتا گرید))
ممنون میشم ، کلی گشتم اما گیج شدم فقط :خجالت:

nasim bahari
سه شنبه 09 شهریور 1389, 09:51 صبح
سلام.......

دوست عزیز برای اضافه کردن سطر و ستون از کد زیر استفاده کن.....

البت باید بدونی که برای ساختن یه سطر باید حتماً حداقل یه ستون داشته باشی........پس اول ستون رو بساز و بعد سطر رو........




Me.DataGridView1.Columns.Add("name", "header")
Me.DataGridView1.Rows.Add()


موفق باشی

mahdi1373
سه شنبه 09 شهریور 1389, 14:13 عصر
سلام دوستان!

میشه در یک خانه از دیتاگرید، Progress bar گذاشت؟

ostovarit
سه شنبه 09 شهریور 1389, 14:19 عصر
سلام دوستان!

میشه در یک خانه از دیتاگرید، Progress bar گذاشت؟

بله میشه نمونه ای از لیست ویو رو براتون میزارم میتونید ازش ایده بگیرید یا اصلا همین رو استفاده کنید ...
موفق باشید

Juventus FC
دوشنبه 15 شهریور 1389, 00:27 صبح
سلام بر اساتید

من یک DataGrid دارم که ستون های مختلفی دارد. یکی از این ستون ها مربوط به "قیمت فروش" میشود.

من چند تا Text Box و یک Command Button گذاشتم برای جستجو گذاشتم.

حالا میخوام یک وضعیتی درست کنم که وقتی کاربر اون جنس مورد نظر را جستجو کرد مجموع قیمت های فروخته شده از اون جنس در یک Text Box نمایش داده شود.

مثلا کاربر وارد کند:

نام جنس : کاغذ از تاریخ : 1387/12/6 تا تاریخ : 1389/12/6 محاسبه :


میخوام که کاربر بعد از وارد کردن اطلاعاتی از قبیل نام جنس،از تاریخ،تا تاریخ در قسمت محاسبه ج
قیمت تمام کاغذ های فروخته شده از تاریخی که کاربر وارد کرده تا تاریخ مورد نظری که وارد کرده،مجموعشون نمایش داده بشه.

مقلا در قسمت محاسبه بنویسه : 20000

من تمام کارهای این برنامه را انجام دادم و DataBase درست کردم فقط مشکل من این محاسبه
جزئی اجناس است.

(عکس زیر گویای همه چیز هست)

mehdad.koulab
دوشنبه 15 شهریور 1389, 09:30 صبح
سلام به اين تاپيك هم نگاهي بكنين

Data Grid View Update (http://www.barnamenevis.org/forum/showthread.php?p=1089212#post1089212)

Hell Lord
شنبه 20 شهریور 1389, 09:09 صبح
دوستان ، بنده اگر بخواهم یک شرط در dataset ام بیاورم که این شرط بایک یک متغیر برنامه داخلش باشد، چطور باید انجام دهم؟ آخه داخل دیتا ست که میروم، کوئری را میتوانم تغییر دهم، اما خب متغییری از درون برنامه نویشود داخلش گذاشت!... :اشتباه:
راه حل چیست؟

Hell Lord
شنبه 20 شهریور 1389, 21:17 عصر
در ادامه ی سوال قبل :
این قسمت را که دوست خوبم دادن را خواستم بزنم :

SqlDataAdapter da = new SqlDataAdapter("select * from RegCustomer", new myConnection().Cnn);
myDataSet ds = new myDataSet();
SqlCommandBuilder scb = new SqlCommandBuilder(da);
da.Fill(ds.RegCustomer);

dataGridViewSpesific1.DataSource = ds.RegCustomer;اما نوع SqlDataAdapter وجود ندارد که! ...لطفا یکی کمکم کنه...

5mmmmm
چهارشنبه 17 آذر 1389, 21:58 عصر
سلام
چطور میشه با ماوس عمل اسکرول را روی دیتا گرید انجام داد؟
یا با کلید های جهت نما بین رکورد ها حرکت کرد؟
چطور میشه تنظیم کرد وقتی کلید جهت نما پایین را فشار می دهیم کار تب یا پرش به کنترل بعدی را انجام بده؟
ممنون

Sal_64
سه شنبه 03 خرداد 1390, 09:44 صبح
چطور میشه اطلاعات دیتاگریدویو رو داخل فایل اکسس ریخت
توضیح : به وسیله کد نویسی یه فایل اکسس ایجاد کرد ، اطلاعات رو داخلش ریخت و ذخیره کرد
با تشکر

nowar1352
جمعه 11 شهریور 1390, 23:09 عصر
با سلام بر اساتيد محترم من چگونه ميتوانم در ديتا گريد ويو ستون بلا استفاده حاشيه سمت راست ( چپ ) را حذف كنم
خيلي گشتم اما به جواب نرسيدم
يه جا ديدم كه تو اين ستون ستون رديف رو ايجاد كردن
http://barnamenevis.org/attachment.php?attachmentid=74748&d=1314990501

viper2009
جمعه 18 شهریور 1390, 02:43 صبح
سلام
این خصوصیت دیتا گرید را مطابق دستور فالس کن
RowHeadersVisible = False

و درسته میشه روی همیت ستون ردیف ایجاد کرد که در واقع نقاشی میشه کدش را بعداً می گذارم (اما وقتی رکوردها افزایش میابد به هم ریخته می شود)

viper2009
جمعه 18 شهریور 1390, 02:46 صبح
یک فایل dll ضمیمه کردم که وقتی به کامپوننت های ویژوال اضافه می کنی یک امکان هم به دیتا گرید اضافه می شه که با انتخاب آن بطور اتوماتیک ستون ردیف ساخته خواهد شد و شما ستون Code را می توانید پنهان کنید.

hosseines
جمعه 29 مهر 1390, 23:45 عصر
چطور می تونم رکوردی از دیتاگرید را براساس فیلدی رنگش رو تغییر بدم.

rezayeman
یک شنبه 21 خرداد 1391, 08:50 صبح
اینم تابعی برای اینکه سطرهای DataGrideView رو با دو رنگ مختلف به صورت یکی در میون ببینید تا خوندنش راحتتر باشه.



Private Sub DG_backcolor()
Dim i As Integer
For i = 1 To (DataGrideView1.Rows.Count - 1) Step 2
DataGrideView1.Rows(i).DefaultCellStyle.BackColor = Color.Lavender
Next
End Sub





با ابن 2 خط کد خیلی راحت میتونی یکی در میان سطرها را رنگی کنید. این دو خط را در formload قرار بدین.

DataGrideView1.DefaultCellStyle.BackColor = Color.LightYellow;
DataGrideView1.AlternatingRowsDefaultCellStyle.Bac kColor = Color.LemonChiffon;

rezayeman
یک شنبه 21 خرداد 1391, 09:04 صبح
سلام دوستان

من یه دیتا گرید دارم که یک ستون اون چک باکس هستش.
چطوری میتونم کاری کنم که وقتی کاربر چک باکس هر سطر رو انتخاب کرد اون سطر select بشه و همچنین بتونه چندین سطرو انتخاب کنه.

تقریبا مثل mail توی یاهو.

من با select کردن چندتا سطر به صورت همزمان بدون فشردن کلید Ctrl مشکل دارم.

rezayeman
دوشنبه 22 خرداد 1391, 14:17 عصر
کسی نیست جواب سوال مارو بده؟

5mmmmm
چهارشنبه 24 خرداد 1391, 00:56 صبح
دوستان کسی در مورد نحوه کارکردن با گریدهای جانوس اطلاعاتی داره؟یا فایل راهنمای فارسی؟
ممنون

mory2008
چهارشنبه 11 مرداد 1391, 11:47 صبح
با عرض سلام خدمت دوستان
من تو برنام هام تقریباً از همه کامپوننت های گرید ویو استفاده کردم که بالاخره تو یجا دچار مشکل شده و کارائی مورد نظر را نخواهد داشت

کاشکی میشد دوستان تجربیات خودشونو به شراکت گذاشته تا یه ابزار grid با امکانات گروه بندی ، فیلترینگ ، سطر محاسباتی برای نمایش محاسبات ، فریز کردن سطر نمایش تصویر زمینه و از همه مهمتر راست به چپ شدن و نمایش انواع داده ها در ستو نها و نمایش درختی را بسازیم و همه دوستان از این ابزار استفاده کنند

کد زیر ابتدائی ترین امکانات گرید رو داره از دوستان خواهش میکنم که کمک کنند کاملش کنم



public class DataGridView : System.Windows.Forms .DataGridView
{
private System.Drawing.Image image;

[DllImport("user32.dll")]
private static extern IntPtr GetDCEx(IntPtr hwnd, IntPtr hrgnclip, uint fdwOptions);

[Category("Appearance")]
public System.Drawing.Image Image
{
get
{
return this.image;
}
set
{
this.image = value;
base.Invalidate();
}
}

protected override void PaintBackground(Graphics graphics, Rectangle clipBounds, Rectangle gridBounds)
{
base.PaintBackground(graphics, clipBounds, gridBounds);
if (this.image != null)
graphics.DrawImage(this.Image, gridBounds);
}

protected override void OnScroll(ScrollEventArgs e)
{
base.OnScroll(e);
this.Refresh();
}

protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
DataGridViewCellStyle style = new DataGridViewCellStyle();
style.BackColor = SystemColors.GradientActiveCaption;
this.AlternatingRowsDefaultCellStyle = style;
this.RowHeadersWidth = 35;

this.RowHeadersDefaultCellStyle.Padding = new Padding(this.RowHeadersWidth);
}

protected override void OnRowPostPaint(DataGridViewRowPostPaintEventArgs e)
{
base.OnRowPostPaint(e);

SolidBrush brushes = new SolidBrush(Color.Black);
if (base.RightToLeft == RightToLeft.Yes)
e.Graphics.DrawString((e.RowIndex + 1).ToString(), this.Font, brushes, base.Width - e.RowBounds.Location.X - 15, e.RowBounds.Location.Y + 4);
else
e.Graphics.DrawString((e.RowIndex + 1).ToString(), this.Font, brushes, e.RowBounds.Location.X + 15, e.RowBounds.Location.Y + 4);
}

}

JaVa
چهارشنبه 11 مرداد 1391, 11:51 صبح
با سلام و خسته نباشید.

اشتباه اومدی!!!!
تالار C# دو کوچه پایینتره.
سئوال هر زبان برنامه نویسی در تالار مختص به خودش پرسیده میشه.

موفق باشید.

tajadini
شنبه 25 مرداد 1393, 23:40 عصر
:قهقهه:دمت گرم دادا