PDA

View Full Version : Binding Data To DataGridViewComboBoxColumn



babi_wd
دوشنبه 28 اسفند 1385, 22:20 عصر
سلام
من میخوام از طریق کد نویسی به کامبو باکس داخل Gridview دیتا بایند کنم
در این مورد خیلی بحث شده اما هیچ کدوم به نتیجه درستی نرسیدن
یا دوستانی که رسیدن از طریق دیتا لایر خود دات نت بوده
من این کارو دارد انجام میدم اما نمیشه



DataTable dt = new DataTable("category");
DataSet ds = new DataSet();
((DataGridViewTextBoxColumn)dataGridView2.Columns["name"]).Visible = false;
dt = new DataTable("category");
Categorys cat = new Categorys();
dt = cat.SelectAll();
ds.Tables.Add(dt);
((DataGridViewComboBoxColumn)dataGridView2.Columns["catname"]).Visible = true;
((DataGridViewComboBoxColumn)dataGridView2.Columns["catname"]).DisplayMember = "name";
((DataGridViewComboBoxColumn)dataGridView2.Columns["catname"]).ValueMember = "id";
((DataGridViewComboBoxColumn)dataGridView2.Columns["catname"]).DataPropertyName = "name";
((DataGridViewComboBoxColumn)dataGridView2.Columns["catname"]).DataSource = ds.Tables["category"];

در ضمن من از دیتا لایر خودم استفاده کردم

__H2__
سه شنبه 29 اسفند 1385, 12:27 عصر
سلام
من درست #C بلد نیستم ولی کدی در VB8 نوشتم و کار کرد. شاید کمکتان کند.
البته یک چیز را مطمئن هستم! شما dt را دوبار new کرده اید، ایرادی ندارد ولی حروم کردن وقت است و کاملا بی معنی است.



Dim dt As New System.Data.DataTable
dt.Columns.Add("Name", GetType(String))
dt.Columns.Add("ID", GetType(Integer))
dt.PrimaryKey = New System.Data.DataColumn() {dt.Columns(0)}
dt.Rows.Add("Ali", 123)
dt.Rows.Add("Reza", 568)
'--------------------------------------------------
Dim dgvc As New System.Windows.Forms.DataGridViewComboBoxColumn
Me.DataGridView1.Columns.Add(dgvc)

dgvc.DataSource = dt
dgvc.DisplayMember = "name"
dgvc.ValueMember = "id"


البته در این کد ستون هم به صورت runtime به datagridview اضافه شده، که نیازی نبوده.

babi_wd
سه شنبه 29 اسفند 1385, 14:49 عصر
مرسی از یاد آوری دو بار تکرار شدن new DataTable
شما ستونی رو ایجاد کردین که وجود نداشته.هنوز تست نکردم،اما من ستون رو از طریق Edit Columns ایجاد کردم.باید تست کنم
ممنون