FineUI 官方论坛

标题: 分享一下这两天搞FineUICore的心得,顺便问些问题 [打印本页]

作者: sealzhou    时间: 2020-11-25 06:31
标题: 分享一下这两天搞FineUICore的心得,顺便问些问题
环境:
VS 2019 for MAC
MySQL for Mac
.NET 5.0 +

先上几张图,说一下暂时搞定了的一些issue。
1. 登陆机制:当多开一个页面,退出当前账号的时候,MVC的[Authorize]还是挺好用的。
记了returnURL,抛开了最顶层判断的js脚本。

[attach]12617[/attach]
2. 对于百度echarts的集成(先弄了假数据,后面要试试,查询条件,动态数据,再拼option的字符串)
[attach]12616[/attach]
[attach]12618[/attach]
[attach]12620[/attach]
[attach]12621[/attach]

3. 多语言,我用数据库搞定了,根据用户的语言编码。登录认证的时候,保存到Claims里面了。
[attach]12622[/attach]

4. 弄了个隐藏账号,不在user用户表中,结合了之前的passwordutil。
[attach]12623[/attach]

5. 就是我想弄的重头戏了。同一个View,实现多个页面。比如,左边树形图,系统设置下的5个功能,全部由一个View来实现。
[attach]12619[/attach]

[attach]12624[/attach]

我在后台弄了一张控件表。所有的设置,都是弄的 3个栏目(条件 + 动作 + 结果),我也是3层架构,哈哈哈,开玩笑的。

这里的 GridControl部分的ControlName一定要和实际表中的字段中的字段名一致。后面动态查询用的。

加载树的时候,我设置的是 node.NavigateUrl = menu.ControlAction + "?PageName=" + menu.Name;
后面根据地址中的pagename,取得一系列的东西,包括初始页面加载,查询等等。
根据 这里面的 OptionControl,ToolbarControl,GridControl开始填充Settings.cshtml.
[attach]12625[/attach]

[attach]12626[/attach]

[attach]12627[/attach]

[attach]12628[/attach]


[attach]12629[/attach]

后面查询的动态语句IformCollection帮了大忙,我这些 条件区域的控件有几个,分别叫什么都不清楚。都是 字段的名字。
不能搞动态变量,只能从我之前设计的控件表信息里取 字段名了,从formcollection中取contain的值。
再结合 system.linq.dynamic就可以动态查询了。

还有好多坑没踩完呢。。。。。

碰到一些问题,也请三石有空帮忙看看。

1. 查询按钮绑定数据集的时候,我根据调试,最前面一定要多两个不知道什么情况,我用了+2实现了。(就是下面这段代码中的 IDs)
[HttpPost]
        public ActionResult btnQuery_Click(IFormCollection values,int vPageIndex=0,int vPageSize=0)
        {
            vPageSize = TConfigHelper.PageSize;
            string pageName = values["hf"];

            List<TControlPageDtl> FieldList = new Settings().GetControlsForPage(pageName, User.FindFirst(ClaimTypes.Locality).Value, "GridControl");
            string[] IDs = new string[FieldList.Count + 2];
            for (int i = 0; i < FieldList.Count; i++)
            {
                IDs[i + 2] = FieldList.ControlName;
            }

            List<TControlPageDtl> items = new Settings().GetControlsForPage(pageName, User.FindFirst(ClaimTypes.Locality).Value, "OptionControl");
            string sqlCondition = "";

            for (int i = 0; i < items.Count; i++)
            {
                sqlCondition += items.ControlName + ".Contains(\"" + values[items.ControlName] + "\") and ";

            }
            sqlCondition += "1=1";
            DataTable dt = new Settings().GetCodeGroup(sqlCondition, pageName, vPageIndex, vPageSize);

            var resultGrid = UIHelper.Grid("resultGrid");
            resultGrid.RecordCount(dt.Rows.Count);
            resultGrid.DataSource(dt, IDs, false);

            return UIHelper.Result();
        }

2. 弹出框和 grid的 页码信息,好像依然是中文。
3. 控件初始化的时候,图标有个函数可以string转ICON:ctrl.Icon = FineUICore.IconHelper.String2Icon(ToolbarLists.Icon, true);
    如果对齐也能有这个功能就好了,我目前对齐是这么写的
            ctrl.HeaderTextAlign = TextAlign.Center;
            if (GridLists.TextAlign == "Center")
            {
                ctrl.TextAlign = TextAlign.Center;
            }
            else if (GridLists.TextAlign == "Right")
            {
                ctrl.TextAlign = TextAlign.Right;
            }
            else
            {
                ctrl.TextAlign = TextAlign.Left;
            }



作者: KK.Leung    时间: 2020-11-25 09:20
支持一下
作者: erp8@live.cn    时间: 2021-2-24 23:11
高手,
厉害,赞!!!




欢迎光临 FineUI 官方论坛 (https://fineui.com/bbs/) Powered by Discuz! X3.4