Devexpress gridcontrol行内增删改操作
最近经常做winform的项目,现在接触了一个新项目,要求使用了第三方框架,就是Devexpress,因为之前没有用过这个东西,而且要实现的效果是需要行内进行新增修改,不是一种跳出窗体或者嵌入窗体。在网上找了好久没有这种的,我趁着周日休息晚上花了2个小时研究了一个小Demo,比较简单总体效果是这样的。
字段没用太多,主要是要进行一个增伤改的行内效果。下面是新增行的一个效果。按钮的样式我没有太注重,现在就主要做一个这样控件的功能。有兴趣可以自己研究一下控件样式。
说的全面一些,首先是GridControl这个控件的按钮列表需要设置的东西
- 还有一个属性需要设置Buttons下的TextEditStyle设置为HideTextEditor。这个没有截图。
- 这里按钮的个数需要点击Buttons后的三个点进入操作窗体
- 这个界面要修改Kind属性为Glyph,如果是一列需要多个按钮需要设置Caption名称,用这个做后台判断
- 之后是设置按钮事件,下面是步骤,我用ButtonClick,他还有个Click,我在网上查资料后说Click没有反应,我就直接用的ButtonClick,有兴趣可以去做做实验,这些设置的东西网上都有。
- 接下来就是后台按钮事件的方法 比较长,直接一个事件方法
/// <summary>
/// 按钮点击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void repositoryItemButtonEdit1_ButtonClick(object sender, ButtonPressedEventArgs e)
{
DataTable Adddt= new DataTable();
// 这里就是通过按钮的Caption判断他操作了哪个按钮
if (e.Button.Caption == "添加")
{
// 循环获取总列数
for (int i = 0; i < this.gridView1.Columns.Count; i++)
{
// 获取列名
string ColumnName = this.gridView1.Columns[i].FieldName;
// 获取选中行
int[] pRows = this.gridView1.GetSelectedRows();
// 这个判断是因为有些按钮操作列是没有设置FieldName名称 不把他们添加到数据集里
if (ColumnName != "")
{
if (pRows.GetLength(0) > 0)
{
// 获取选择列的单元格数据
var info = gridView1.GetRowCellValue(pRows[0], ColumnName).