二开案例.列表插件.获取表格选中行
【应用场景】使用插件获取表格选中行。
【案例演示】采购订单列表,新增菜单项,获取列表的当前选中行,该示例提供了两种获取选中行的方式,分别用于列表和动态表单的场景。
【实现步骤】
<1>编写列表插件,代码如下。
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
using Kingdee.BOS.Core.List;
using Kingdee.BOS.Core.List.PlugIn;
using Kingdee.BOS.Util;
using System.ComponentModel;
using System.Linq;
namespace Jac.XkDemo.BOS.Business.PlugIn
{
/// <summary>
/// 【列表插件】获取表格选中行
/// </summary>
[Description("【列表插件】获取表格选中行"), HotUpdate]
public class EntryGridGetSelectedRowsListPlugIn : AbstractListPlugIn
{
/// <summary>
/// 列表主菜单点击事件
/// </summary>
/// <param name="e"></param>
public override void BarItemClick(BarItemClickEventArgs e)
{
base.BarItemClick(e);
#region 获取列表的选中行(列表)
if (e.BarItemKey.EqualsIgnoreCase("tbGetListSelectedRows"))
{
var lv = this.View as IListView;
if (lv == null)
{
return;
}
var selectedRows = lv.SelectedRowsInfo;
if (selectedRows == null || selectedRows.Count == 0)
{
this.View.ShowMessage("当前没有行被选中!");
return;
}
var rowIndexs = string.Join(",", selectedRows.Select(o => o.RowKey));
this.View.ShowMessage("当前选中行:" + rowIndexs);
}
#endregion
#region 获取数据表格的选中行(动态表单)
if (e.BarItemKey.EqualsIgnoreCase("tbGetEntryGridSelectedRows"))
{
var grid = this.View.GetControl<EntryGrid>("FList");
var selectedRows = grid.GetSelectedRows();
if (selectedRows == null || selectedRows.Length == 0)
{
this.View.ShowMessage("当前没有行被选中!");
return;
}
var rowIndexs = string.Join(",", grid.GetSelectedRows());
this.View.ShowMessage("当前选中行:" + rowIndexs);
}
#endregion
}
}
}
<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。
<3>BOSIDE扩展采购订单,列表菜单集合上添加2个菜单项,注册列表插件,保存元数据,开发完毕。
现在可以登录业务站点,打开采购订单列表界面,检验一下插件效果啦。
通过列表视图获取当前选中行:
通过表格控件获取当前选中行:
【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696
二开案例.列表插件.获取表格选中行
本文2024-09-23 04:21:19发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-164766.html