快速开发平台给打印模板的字段绑定值

快速开发平台打印功能各个字段是怎么绑定值的,前后端该怎么去对应值的绑定?

如下图快速开发平台打印模板形式,字段名都用$$XXXX$$的方式表现。比如系列名称,我们需要在后台为CName赋值的

快速开发平台打印模板

该打印模板是在后台的"模板设置"里面去设置,保存在数据库里面,表名:Template。

后台代码如下:

        /// <summary>
        /// 打印产品系列及其产品信息
        /// </summary>
        /// <param name="categoryID"></param>
        /// <returns></returns>
        public ActionResult CategoryPrintTemp(string categoryID)
        {
            
            StringBuilder resulttemplateContent = new StringBuilder();
            Category category = _categoryService.GetCategoryByCategoryID(categoryID);
            IList<Product> productList = _productService.GetProductsByCategoryID(categoryID);
            if (category == null)
            {
                return ContentNotFound();
            }

            ITemplateService _templateService = ObjectContainerFactory.CurrentContainer.Resolve<ITemplateService>();
            ISettingService _settingService = ObjectContainerFactory.CurrentContainer.Resolve<ISettingService>();
            var systemSetting = _settingService.LoadSetting<SystemSettings>();

            //获取所需要加载的模板
            Template template = _templateService.GetTemplate(systemSetting.SaleOrderPrintID);

            //加载模板内容,模板管理里面设置
            string templateContent = template.TemplateContent;

            int datalineStart = templateContent.IndexOf("<tr id=\"dataline\">");
            int datalineEnd = templateContent.IndexOf("</tr>", datalineStart) + 5;

            int sumlineStart = templateContent.IndexOf("<tr id=\"sumline\">");
            int sumlineEnd = templateContent.IndexOf("</tr>", sumlineStart) + 5;

            string datalinebefore = templateContent.Substring(0, datalineStart);
            string dataline = templateContent.Substring(datalineStart, datalineEnd - datalineStart + 1);
            string tempdataline = dataline;
            string sumline = templateContent.Substring(sumlineStart, sumlineEnd - sumlineStart + 1);
            string datalineafter = templateContent.Substring(sumlineEnd + 1);

            datalinebefore = datalinebefore.Replace("$$CName$$", category.Name);

            datalinebefore = datalinebefore.Replace("$$Date$$", String.Format(category.CreateAt.ToString(), "yyyy-mm-dd"));
            datalinebefore = datalinebefore.Replace("$$CCreateBy$$", category.CreateBy);

            resulttemplateContent.Append(datalinebefore);

            for (int i = 0; i < productList.Count; i++)
            {
                tempdataline = dataline;

                tempdataline = tempdataline.Replace("$$SeqNo$$", (i + 1).ToString());
                tempdataline = tempdataline.Replace("$$PName$$", productList[i].Name);
                tempdataline = tempdataline.Replace("$$PPrice$$", productList[i].Price.ToString());
                tempdataline = tempdataline.Replace("$$PIsSale$$", productList[i].IsSale ? "是" : "否");
                tempdataline = tempdataline.Replace("$$PIsHot$$", productList[i].IsHot ? "是" : "否");
                tempdataline = tempdataline.Replace("$$PDescript$$", productList[i].Description);
               
                resulttemplateContent.Append(tempdataline);
            }

            resulttemplateContent.Append(datalineafter.Replace("$$CreateBy$$", this.UserName).Replace("$$AuditPerson$$", ""));

            HtmlString htmlString = new HtmlString(resulttemplateContent.ToString());
            return View(htmlString);
        }
在后台代码中我们可以看到这样一段代码:datalinebefore = datalinebefore.Replace("$$CName$$", category.Name);,这个就是给CName赋值的代码。

快速开发平台打印功能各个字段是怎么绑定值的,前后端该怎么去对应值的绑定?原来是模板静态页面用值去替换占位符来解决的。

标签: 快速开发框架打印技术系列

网站&系统开发技术学习交流群:463167176

本站文章除注明转载外,均为本站原创或翻译,欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,共创和谐网络环境。
转载请注明:文章转载自:软件开发框架 » 快速开发平台给打印模板的字段绑定值
本文标题:快速开发平台给打印模板的字段绑定值
本文地址:http://www.hocode.com/OrgTec/Plugin/0023.html

相关文章: B/S开发框架_怎么为dropdownlist下拉框_绑定后台数据库值

电话
电话 18718672256

扫一扫
二维码