二开案例.列表插件.列表刷新指定行

【应用场景】
列表界面上,修改了特定行的数据,出于性能考虑,仅刷新指定行。
【案例演示】
采购订单列表,修改指定行的数据后,刷新指定行。

【实现步骤】
<1>编写列表插件,代码如下。
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
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 RefreshRowsListPlugIn : AbstractListPlugIn
{
public override void BarItemClick(BarItemClickEventArgs e)
{
base.BarItemClick(e);
// TODO
if (e.BarItemKey == "test")
{
// 刷新选中行
if (this.ListView.SelectedRowsInfo.Count == 0)
{
this.View.ShowMessage("没有选择任何数据,请先选择数据!");
return;
}
var ids = this.ListView.SelectedRowsInfo.Select(o => o.PrimaryKeyValue);
var sql = string.Format("UPDATE T_PUR_POORDER SET FCLOSESTATUS='{0}' WHERE FID IN ({1})", "B", string.Join(",", ids));
DBUtils.Execute(this.Context, sql);
this.ListView.RefreshSelectRows(this.ListView.SelectedRowsInfo);
this.View.ShowMessage(string.Format("列表选中数据行已刷新:{0}", string.Join(",", this.ListView.SelectedRowsInfo.Select(o => o.DataRow["fidentityid"]))));
}
else if (e.BarItemKey == "test1")
{
// 刷新指定行
va
二开案例.列表插件.列表刷新指定行
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



