Пример #1
0
        /// <summary>
        /// 获取视图名称
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        private string GetFormItemViewName(ModuleFormItemViewParam param)
        {
            var viewname = param.ColumnInfo.ColumnType.ToString();

            //非主引用使用空视图
            if (param.ColumnInfo.ColumnType == ColumnTypes.Reference && (param.ColumnInfo.ValuePath ?? "").StartsWith("@"))
            {
                viewname = "Default";
            }
            //自定义控件
            if (param.ColumnInfo.ColumnType == ColumnTypes.Customize)
            {
                var control = param.ColumnInfo.GetCustomizeControl();

                if (control == null)
                {
                    Logger.Error("未找到自定义控件:" + param.ColumnInfo.CustomizeControl);
                    throw new UserFriendlyException(L("未找到自定义控件") + param.ColumnInfo.CustomizeControl);
                }
                viewname = "Customize/" + control.GetViewComponentName();
            }

            //如果是展示页,则视图名称为Text_View
            if (param.FormType == FormType.View)
            {
                viewname = viewname + "_View";
            }

            return(viewname);
        }
Пример #2
0
        public async Task <IViewComponentResult> InvokeAsync(ModuleFormItemViewParam param)
        {
            var vm = new ModuleFormItemViewModel();

            param.MapTo(vm);
            vm.ColumnInfo.Normalize();
            //获取值
            var columnValue = await GetValue(param);

            vm.Value = columnValue;


            //获取对应的视图
            var viewname = GetFormItemViewName(param);

            return(View(viewname, vm));
        }
Пример #3
0
        private async Task <object> GetValue(ModuleFormItemViewParam param)
        {
            object result = null;

            if (param.FormType == FormType.Add)
            {
                //添加表单时需要默认值计算
                result = await _defaultValueParser.Parse(new ColumnReadContext()
                {
                    ColumnInfo = param.ColumnInfo
                });
            }
            else if (param.Data != null)
            {
                //如果实体存在,则直接取实体值
                param.Data.TryGetValue(param.ColumnInfo.ColumnKey, out result);
            }

            return(result);
        }