Ejemplo n.º 1
0
        protected override string RenderFormContent()
        {
            StringBuilder formHtml  = new StringBuilder();
            string        ffContent = FFrm.FFContent;

            foreach (var field in _existTemplateFields)
            {
                ffContent = ffContent.Replace("${" + field.FieldComment + "}", field.BuilderFreeForm(FormId, _formStatus));
            }
            foreach (var table in _childTableList)
            {
                string primaryKey = _dbContext.Columns(table.Value.TableName).FirstOrDefault(f => f.RefTable == _fapTable.TableName)?.ColName ?? "";
                Guard.Against.NullOrWhiteSpace(primaryKey, nameof(primaryKey));

                Grid     grid = new Grid(_dbContext, _rbacService, _applicationContext, _multiLangService, $"grid-{table.Value.TableName}");
                QuerySet qs   = new QuerySet();
                qs.TableName   = table.Value.TableName;
                qs.GlobalWhere = $"{primaryKey}='{FidValue}'";

                var subColumnList = _dbContext.Columns(table.Value.TableName);
                if (subColumnList != null && subColumnList.Any())
                {
                    //元数据默认值
                    foreach (var subCol in subColumnList)
                    {
                        if (subCol.ColDefault.IsPresent())
                        {
                            qs.AddDefaultValue(subCol.ColName, subCol.ColDefault);
                        }
                    }
                }
                if (_subTableListDefaultData != null && _subTableListDefaultData.Any())
                {
                    //自定义默认值
                    var subDefaultData = _subTableListDefaultData.First(t => t.TableName == table.Value.TableName)?.Data;
                    if (subDefaultData != null)
                    {
                        foreach (var sd in subDefaultData)
                        {
                            qs.AddDefaultValue(sd.Key, sd.Value);
                        }
                    }
                }
                qs.QueryCols = "*";
                grid.SetQueryOption(qs);
                grid.SetPostData(new { QuerySet = qs, HasOperCol = false });
                if (_formStatus != FormStatus.View && !childGridReadOnly)
                {
                    grid.SetEditRowModel(EditRowModel.Inline);

                    grid.SetPager($"pager-{table.Value.TableName}");
                }
                grid.SetEditUrl("clientArray");
                grid.SetEditRowModel(EditRowModel.Inline);
                grid.SetColMenu(false);
                grid.SetShrinkToFit(false);
                grid.SetInsideElement("girdcontainer");
                ffContent = ffContent.Replace(table.Key, grid.ToString());
                //ffContent = ffContent.Replace("{{" + table.TableComment + "}}", $"<iframe width='100%' height='400' frameborder='0' scrolling='auto' src='/PublicCtrl/InlineGridPage?tn={table.TableName}&fid={newUid}&primaryKey={primaryKey}'></iframe>");
            }
            formHtml.AppendLine("<div  class=\"wordpage\">");
            formHtml.AppendLine(ffContent);
            //增加存储的子表
            if (_childTableList.Any() && _formStatus != FormStatus.View && !childGridReadOnly)
            {
                formHtml.Append($"<label id='lblchildgrid'  hidden='hidden'>{string.Join(',', _childTableList.Values.Select(t => t.TableName))}</label >");
            }
            formHtml.AppendLine("</div>");
            return(formHtml.ToString());
        }