devexpress gridControl如果设置某列按钮的状态

pig357 2015-06-17 11:23:38
环境:VS2008 devexpress12.1 winform
问题:如图

数据是DataTable绑定的,然后在后面添加了按钮列。
请问
(1)如何根据其中的‘状态’字段设置该行某按钮的使能?
(2)按钮点击后修改该行数据内容,请问如何刷新表格?
请大神帮帮忙哦。。
...全文
1724 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
n388888888 2017-11-14
  • 打赏
  • 举报
回复
楼主 这个问题怎么解决的?同求
qq_36163212 2017-08-04
  • 打赏
  • 举报
回复
楼主 这个问题你解决了没有啊 解决了教教我呗
Jenifer 2016-10-24
  • 打赏
  • 举报
回复
怎么解决的啊?求方法
墨雁 2016-07-30
  • 打赏
  • 举报
回复
楼主求指导啊
tokeyro 2016-06-28
  • 打赏
  • 举报
回复
贴出来也让我们学习一下啊!?
wllllll 2016-06-09
  • 打赏
  • 举报
回复
终于找到解决办法了。
wllllll 2016-06-04
  • 打赏
  • 举报
回复
有办法解决了吗?
2489193338 2016-03-11
  • 打赏
  • 举报
回复
那个操作列是怎么添加的,本人初学,请大神指点
pig357 2015-06-18
  • 打赏
  • 举报
回复
引用 5 楼 fly_lalala 的回复:
按钮的 enable = false true ok?
怎么得到每行的按钮呢?
fly_lalala 2015-06-18
  • 打赏
  • 举报
回复
按钮的 enable = false true ok?
pig357 2015-06-17
  • 打赏
  • 举报
回复
引用 3 楼 fly_lalala 的回复:
this.gridview1.refresh() 或者 重新 this.gridcontrol.datasource = dt gridview_focuserowchanged事件 根据状态判断使用
那按钮使能呢,怎么根据状态设置按钮状态呢?
fly_lalala 2015-06-17
  • 打赏
  • 举报
回复
this.gridview1.refresh() 或者 重新 this.gridcontrol.datasource = dt gridview_focuserowchanged事件 根据状态判断使用
pig357 2015-06-17
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
不确定 操作列的 按钮 你是如何添加的,不过可以 在点击按钮的时候 根据状态 判断是否允许 删除或者修改。

修改成功后 更新到数据库 在从数据库重新绑定。


在点击时判断状态感觉给用户的体验不好,按钮直接灰色禁用用户直接就可以看见,不需要再点击才知道。

private void CreateButtonColumn()
{
DataTable dt = new DataTable();
dt.Columns.Add("名字");
dt.Columns.Add("状态");
dt.Columns.Add("年龄");
dt.Columns.Add("语文");
dt.Columns.Add("数学");
Random rd = new Random();
for (int i = 0; i < 100; i++)
{
dt.Rows.Add("stu_" + i / 10, rd.Next(1, 3), rd.Next(10, 20), rd.Next(100), rd.Next(0, 100));
}
gridControl1.DataSource = dt;
gridView1.PopulateColumns();
//gridView1.OptionsBehavior.Editable = false;

RepositoryItemButtonEdit riButtonEdit = new RepositoryItemButtonEdit();
riButtonEdit.TextEditStyle = TextEditStyles.HideTextEditor;
riButtonEdit.Buttons.Clear();

EditorButton bt0 = new EditorButton();
bt0.Kind = ButtonPredefines.Glyph;
bt0.Caption = "删除";
bt0.ToolTip = "删除当前行";
bt0.Image = global::NPOIExeclHelper.Properties.Resources.blog__2_;
bt0.ImageLocation = DevExpress.XtraEditors.ImageLocation.MiddleLeft;
bt0.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near;
riButtonEdit.Buttons.Add(bt0);

EditorButton bt1 = new EditorButton();
bt1.Kind = ButtonPredefines.Glyph;
bt1.Caption = "编辑";
bt1.ToolTip = "编辑当前行";
bt1.Image = global::NPOIExeclHelper.Properties.Resources.blog_arrow;
bt1.ImageLocation = DevExpress.XtraEditors.ImageLocation.MiddleLeft;
bt1.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near;
riButtonEdit.Buttons.Add(bt1);

EditorButton bt2 = new EditorButton();
bt2.Kind = ButtonPredefines.Glyph;
bt2.Caption = "添加";
bt2.ToolTip = "添加当前行";
bt2.Image = global::NPOIExeclHelper.Properties.Resources.blog_plus;
bt2.ImageLocation = DevExpress.XtraEditors.ImageLocation.MiddleLeft;
bt2.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near;
riButtonEdit.Buttons.Add(bt2);

riButtonEdit.ButtonClick += new ButtonPressedEventHandler(riButtonEdit_ButtonClick);

GridColumn col = new GridColumn();
col.Caption = "操作";
col.FieldName = "operate";
//col.VisibleIndex = 0;
col.Width = 100;
col.Visible = true;
col.UnboundType = DevExpress.Data.UnboundColumnType.String;
col.ColumnEdit = riButtonEdit;
gridControl1.RepositoryItems.Add(riButtonEdit);
gridView1.Columns.Add(col);

foreach (GridColumn c in gridView1.Columns)
{
c.OptionsColumn.AllowEdit = c.ColumnEdit is RepositoryItemButtonEdit;
}

// gridView1.BestFitColumns();
}


另外,我就是想问怎么刷新该表格。比如我添加了一条数据,然后在DataTable里面添加了一行,然后该怎么刷新表格呢?
  • 打赏
  • 举报
回复
不确定 操作列的 按钮 你是如何添加的,不过可以 在点击按钮的时候 根据状态 判断是否允许 删除或者修改。 修改成功后 更新到数据库 在从数据库重新绑定。

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧