I am developing Windows based App and in one of my forms I have DevExpress XtraGrid Control with CheckBox column and Name Column, so users can check the subjects they want and Save them.
Here is the screen shot:
First of all I want to know how to set KeyFieldName (like in Aspx GridView) of GridControl, because I couldn't find it in properties. Second, when my users select some rows and click Add button, I would like to get all the selected rows' by KeyField into XML and save it to DB.
Privet! Try this:
DataRow row = gridView2.GetDataRow(gridView2.FocusedRowHandle);
And look here: http://documentation.devexpress.com/#WindowsForms/CustomDocument753
for(int i = view.SelectedRowsCount - 1; i >= 0; i--) {
int row = view.GetSelectedRows()[i];
// your code here
}
or export selection, look here: http://www.devexpress.com/Support/Center/p/E4352.aspx
Here is the sample: Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable("table1");
dt.Columns.Add("ID", Type.GetType("System.Int32"));
dt.Columns.Add("CHECK", Type.GetType("System.Boolean"));
dt.Columns.Add("DAY");
for (int i = 0; i < 10; i++)
dt.Rows.Add(new object[] {i, false, "Option " + i});
gridControl1.DataSource = dt;
}
/// <summary>
/// Extract checked rows
/// </summary>
private void simpleButton1_Click(object sender, EventArgs e)
{
memoEdit1.Text = string.Empty;
StringBuilder sb = new StringBuilder();
foreach (var row in ((DataTable)gridControl1.DataSource).AsEnumerable().Where(row => (bool)row["CHECK"]))
sb.Append(String.Format("{0}, {1}, {2}\r\n", row["ID"], row["CHECK"], row["DAY"]));
memoEdit1.Text = sb.ToString();
}
/// <summary>
/// Extract selected rows
/// </summary>
private void simpleButton2_Click(object sender, EventArgs e)
{
memoEdit1.Text = string.Empty;
StringBuilder sb = new StringBuilder();
foreach (int rowIndex in gridView1.GetSelectedRows())
{
DataRow row = gridView1.GetDataRow(rowIndex);
sb.Append(String.Format("{0}, {1}, {2}\r\n", row["ID"], row["CHECK"], row["DAY"]));
}
memoEdit1.Text = sb.ToString();
}
}
}
Form1.Designer.cs
namespace WindowsFormsApplication1
{
partial class Form1
{
private System.ComponentModel.IContainer components = null;
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region designer
private void InitializeComponent()
{
this.gridControl1 = new DevExpress.XtraGrid.GridControl();
this.gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView();
this.gridColumn1 = new DevExpress.XtraGrid.Columns.GridColumn();
this.repositoryItemCheckEdit1 = new DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit();
this.gridColumn2 = new DevExpress.XtraGrid.Columns.GridColumn();
this.simpleButton1 = new DevExpress.XtraEditors.SimpleButton();
this.simpleButton2 = new DevExpress.XtraEditors.SimpleButton();
this.memoEdit1 = new DevExpress.XtraEditors.MemoEdit();
((System.ComponentModel.ISupportInitialize)(this.gridControl1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.gridView1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.repositoryItemCheckEdit1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.memoEdit1.Properties)).BeginInit();
this.SuspendLayout();
//
// gridControl1
//
this.gridControl1.Location = new System.Drawing.Point(13, 13);
this.gridControl1.MainView = this.gridView1;
this.gridControl1.Name = "gridControl1";
this.gridControl1.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] {
this.repositoryItemCheckEdit1});
this.gridControl1.Size = new System.Drawing.Size(350, 329);
this.gridControl1.TabIndex = 0;
this.gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] {
this.gridView1});
//
// gridView1
//
this.gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] {
this.gridColumn1,
this.gridColumn2});
this.gridView1.GridControl = this.gridControl1;
this.gridView1.Name = "gridView1";
this.gridView1.OptionsSelection.MultiSelect = true;
//
// gridColumn1
//
this.gridColumn1.Caption = "gridColumn1";
this.gridColumn1.ColumnEdit = this.repositoryItemCheckEdit1;
this.gridColumn1.FieldName = "CHECK";
this.gridColumn1.Name = "gridColumn1";
this.gridColumn1.Visible = true;
this.gridColumn1.VisibleIndex = 0;
//
// repositoryItemCheckEdit1
//
this.repositoryItemCheckEdit1.AutoHeight = false;
this.repositoryItemCheckEdit1.Name = "repositoryItemCheckEdit1";
//
// gridColumn2
//
this.gridColumn2.Caption = "gridColumn2";
this.gridColumn2.FieldName = "DAY";
this.gridColumn2.Name = "gridColumn2";
this.gridColumn2.Visible = true;
this.gridColumn2.VisibleIndex = 1;
//
// simpleButton1
//
this.simpleButton1.Location = new System.Drawing.Point(369, 12);
this.simpleButton1.Name = "simpleButton1";
this.simpleButton1.Size = new System.Drawing.Size(75, 23);
this.simpleButton1.TabIndex = 1;
this.simpleButton1.Text = "Checked >>";
this.simpleButton1.Click += new System.EventHandler(this.simpleButton1_Click);
//
// simpleButton2
//
this.simpleButton2.Location = new System.Drawing.Point(369, 41);
this.simpleButton2.Name = "simpleButton2";
this.simpleButton2.Size = new System.Drawing.Size(75, 23);
this.simpleButton2.TabIndex = 2;
this.simpleButton2.Text = "Selected >>";
this.simpleButton2.Click += new System.EventHandler(this.simpleButton2_Click);
//
// memoEdit1
//
this.memoEdit1.Location = new System.Drawing.Point(450, 11);
this.memoEdit1.Name = "memoEdit1";
this.memoEdit1.Size = new System.Drawing.Size(299, 331);
this.memoEdit1.TabIndex = 3;
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(964, 665);
this.Controls.Add(this.memoEdit1);
this.Controls.Add(this.simpleButton2);
this.Controls.Add(this.simpleButton1);
this.Controls.Add(this.gridControl1);
this.Name = "Form1";
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
((System.ComponentModel.ISupportInitialize)(this.gridControl1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.gridView1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.repositoryItemCheckEdit1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.memoEdit1.Properties)).EndInit();
this.ResumeLayout(false);
}
#endregion
private DevExpress.XtraGrid.GridControl gridControl1;
private DevExpress.XtraGrid.Views.Grid.GridView gridView1;
private DevExpress.XtraGrid.Columns.GridColumn gridColumn1;
private DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit repositoryItemCheckEdit1;
private DevExpress.XtraGrid.Columns.GridColumn gridColumn2;
private DevExpress.XtraEditors.SimpleButton simpleButton1;
private DevExpress.XtraEditors.SimpleButton simpleButton2;
private DevExpress.XtraEditors.MemoEdit memoEdit1;
}
}