如何实现列表自动刷新原创
金蝶云社区-Howhy
Howhy
25人赞赏了该文章 2,770次浏览 未经作者许可,禁止转载编辑于2019年12月09日 10:50:41

       部分客户希望动态表单,单据或者列表自动刷新。或者放置超时自动退出登录。目前Cloud可以实现通过插件定时由客户端向服务端发送请求,然后服务端再做刷新或者其他操作。

        需要注意的是,目前此方案不支持报表,包括直接SQL账表、简单账表等。如果是报表相关需要,可以转成动态表单实现。

        具体插件代码如下,下面的方案是注册到需要刷新的单据的列表插件上。刷新的间隔通过para["delay"] = "300000"指定,示例中是300000毫秒,建议刷新间隔是5-10分钟。


    [Description("自动刷新列表")]

    public class AutoRefreshListPlugIn : AbstractListPlugIn
    {
        private const string TestKey = "TestKey";
        public override void AfterBindData(EventArgs e)
        {
            base.AfterBindData(e);
            KeepAlive();
        }

        public void KeepAlive()
        {
            JSONObject para = new JSONObject();
            para["key"] = TestKey;
            para["eventName"] = "CustomEvents";
            var data = new JSONObject();
            para["data"] = data;
            data["refreshData"] = DateTime.Now;
            para["delay"] = "300000";
            this.View.AddAction(JSAction.FireCustomRequest, para);
        }

        public override void CustomEvents(CustomEventsArgs e)
        {
            base.CustomEvents(e);
            if (e.Key.EqualsIgnoreCase(TestKey))
            {
                var data = JSONObject.Parse(e.EventArgs);

                if (data != null && data.ContainsKey("refreshData"))
                {
                    this.View.Refresh();
                }
            }

        }
    }
图标赞 25
25人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0