如何在DevExpress .NET MAUI Data Grid中添加按钮并实现跳转功能
在DevExpress GridView中添加按钮列并实现跳转功能
步骤1:添加按钮类型的列
不需要创建未绑定列,直接在GridView的列集合中添加ButtonEdit类型的列即可:
设计器操作:
- 打开GridControl的设计器,进入GridView的Columns页面。
- 点击「Add」新增列,给列设置一个
FieldName(可以填任意不存在的字段名,因为按钮列无需绑定数据)。 - 在列的
ColumnEdit属性中,选择新建RepositoryItemButtonEdit。 - 编辑该RepositoryItemButtonEdit的属性:将
TextEditStyle设为HideTextEditor(只显示按钮),在Buttons集合中设置按钮显示文字(比如「跳转」)。
代码实现:
// 创建按钮列 GridColumn btnColumn = gridView1.Columns.Add(); btnColumn.FieldName = "ActionColumn"; btnColumn.Caption = "操作"; btnColumn.VisibleIndex = gridView1.Columns.Count; // 创建按钮编辑器 RepositoryItemButtonEdit btnEdit = new RepositoryItemButtonEdit(); btnEdit.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor; btnEdit.Buttons[0].Caption = "跳转"; gridView1.RepositoryItems.Add(btnEdit); btnColumn.ColumnEdit = btnEdit;
步骤2:处理按钮点击事件
有两种常用方式捕捉按钮点击动作:
方式1:绑定RepositoryItemButtonEdit的ButtonClick事件
// 初始化时绑定事件 btnEdit.ButtonClick += btnEdit_ButtonClick; // 事件处理逻辑 private void btnEdit_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e) { // 获取当前选中行的数据 if (gridView1.FocusedRowHandle >= 0) { var rowData = gridView1.GetRow(gridView1.FocusedRowHandle); // 示例:假设数据实体为MyModel,包含Id属性 int targetId = ((MyModel)rowData).Id; // 执行跳转操作(WinForm示例:打开目标窗体) TargetForm targetForm = new TargetForm(targetId); targetForm.Show(); // Web项目可根据场景用Response.Redirect或路由跳转 } }
方式2:通过GridView的MouseDown事件判断点击区域
如果不想绑定编辑器事件,也可以通过鼠标事件判断:
gridView1.MouseDown += gridView1_MouseDown; private void gridView1_MouseDown(object sender, MouseEventArgs e) { GridHitInfo hitInfo = gridView1.CalcHitInfo(e.Location); // 判断点击的是按钮列区域 if (hitInfo.InRowCell && hitInfo.Column.FieldName == "ActionColumn") { var rowData = gridView1.GetRow(hitInfo.RowHandle); int targetId = ((MyModel)rowData).Id; TargetForm targetForm = new TargetForm(targetId); targetForm.Show(); } }
注意事项
- 若开启了GridView的
OptionsSelection.MultiSelect,可通过gridView1.GetSelectedRows()获取所有选中行的Handle,处理多行跳转场景。 - 若是DevExpress ASP.NET GridView,需使用
GridViewDataButtonEditColumn,并处理CustomButtonCallback事件实现跳转。
内容的提问来源于stack exchange,提问作者Albin Lukose
相关产品推荐
相关产品推荐

