You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在DevExpress .NET MAUI Data Grid中添加按钮并实现跳转功能

在DevExpress GridView中添加按钮列并实现跳转功能

步骤1:添加按钮类型的列

不需要创建未绑定列,直接在GridView的列集合中添加ButtonEdit类型的列即可:

  • 设计器操作:

    1. 打开GridControl的设计器,进入GridView的Columns页面。
    2. 点击「Add」新增列,给列设置一个FieldName(可以填任意不存在的字段名,因为按钮列无需绑定数据)。
    3. 在列的ColumnEdit属性中,选择新建RepositoryItemButtonEdit。
    4. 编辑该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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 19:55:15