diff --git a/插件库/Lskj.Control/GridControlEx.cs b/插件库/Lskj.Control/GridControlEx.cs index 1b208bf..3d5456c 100644 --- a/插件库/Lskj.Control/GridControlEx.cs +++ b/插件库/Lskj.Control/GridControlEx.cs @@ -318,6 +318,10 @@ namespace Lskj.Control /// public string ModifyCond = string.Empty; /// + ///超链接点击回调 + /// + public event EventHandler OnAfterLinkCilk; + /// /// 表格粘贴行后回调 /// public event EventHandler OnAfterPasting; @@ -949,6 +953,9 @@ namespace Lskj.Control case ControlType.LabHyperlink: InitHyperlink(column, model); break; + case ControlType.LabRightlink: + InitRightlink(column, model); + break; default: break; } @@ -4130,7 +4137,68 @@ namespace Lskj.Control gridColumn.OptionsColumn.ReadOnly = true; gridColumn.ColumnEdit = hyperLinkEdit; } + /// + /// 说明:超链接右键列 + /// 创建人:王一帆 + /// 创建日期:2025-06-13 + /// 修改人: + /// 修改日期: + /// 修改备注: + /// 版本:1.0 + /// + private void InitRightlink(GridColumn gridColumn, GridColumnModel model) + { + // 创建超链接编辑器 + RepositoryItemHyperLinkEdit hyperLinkEdit = new RepositoryItemHyperLinkEdit(); + hyperLinkEdit.LinkColor = System.Drawing.Color.Blue; + hyperLinkEdit.NullText = ""; + hyperLinkEdit.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor; + // 设置超链接点击事件 + hyperLinkEdit.Click += OnRightClick; + hyperLinkEdit.Tag = model; + // 注册编辑器 + gridControl.RepositoryItems.Add(hyperLinkEdit); + gridColumn.OptionsColumn.ReadOnly = true; + gridColumn.ColumnEdit = hyperLinkEdit; + } + /// + /// 点击超链接右键 + /// + /// + /// + private void OnRightClick(object sender, EventArgs e) + { + string unionright = string.Empty; + // 获取点击的 HyperLinkEdit 实例 + DevExpress.XtraEditors.HyperLinkEdit linkEdit = sender as DevExpress.XtraEditors.HyperLinkEdit; + if (linkEdit != null) + { + // 获取对应的 RepositoryItem + RepositoryItemHyperLinkEdit repositoryItem = linkEdit.Properties as RepositoryItemHyperLinkEdit; + if (repositoryItem != null) + { + GridColumnModel model = repositoryItem.Tag as GridColumnModel; + unionright = model.ValueMember; + } + if (!string.IsNullOrWhiteSpace(unionright)) + { + // 获取当前选中的行和列 + + int rowHandle = this.gridView.FocusedRowHandle; + string rightid = this.gridView.GetRowCellValue(rowHandle, unionright)+""; + + if (!string.IsNullOrEmpty(rightid)) + { + if (OnAfterLinkCilk != null) + { + this.OnAfterLinkCilk(rightid, null);//直接调用新增行方法,添加关联数据 + } + + } + } + } + } private void HyperLinkEdit_Click(object sender, EventArgs e) { string urlName = string.Empty;