首页 > 代码库 > 佩特来项目经验小集合(6)___ASP.NET模板页的读取
佩特来项目经验小集合(6)___ASP.NET模板页的读取
在佩特来售后管理系统流程中,其中有一个节点是故障分析,也就是将发回来的整机进行故障分析,传统的方法是将每个整机的故障信息录入一个Excel表,表格Excel样式:
这里是将Excel转换成模板页,然后根据需要替换模板中的标签,将功能完整展示,下面介绍在这个功能在项目中实现步骤:
1.将Excel转换为网页
打开Excel文档,单击菜单栏中的“文件”,找到“另存为”,如图所示。在"另存为" 窗口的“保存类型”,下拉菜单中找到“单个文件网页”。名称起自己想起的。
2.修改模板页
先看一下将Excel中模板头部及尾部生成的静态模板页(htm页),页面#号显示的部分都是需要替换的标签:
看一下这部分的代码实现,这些就是简单的HTML代码,由EXCEL转换的网页代码略微修改了下:
<body style="width: 95%; margin: 0 auto; padding: 20px;"> <form name="form" method="post" action="#"> [#ChaiFenID#] <table border="1px" style="border-collapse: collapse;"> <tr style="text-align: center;"> <td colspan="15" class="style1"> 起动机故障分析表(A类) </td> </tr> <tr> <td colspan="2" class="style2"> 出厂二维 </td> <td colspan="5" class="style3"> [#CCEWM#] </td> <td colspan="3" class="style2"> 售后二维码 </td> <td colspan="5" class="style3"> [#SHEWM#] </td> </tr> <tr> <td rowspan="2" class="style5"> 信息 </td> <td class="style6"> 反馈单位 </td> <td colspan="3" class="style7"> [#FKDW#] </td> <td class="style6"> 反馈日期 </td> <td colspan="2" class="style7"> [#FKRQ#] </td> <td class="style5"> 型号 </td> <td colspan="2" class="style7"> [#XH#] </td> <td class="style5"> 序列号 </td> <td colspan="3" class="style7"> [#XLH#] </td> </tr> <tr> <td class="style6"> 三包机 </td> <td class="style5"> [#SBJ#] </td> <td class="style6"> 零公里机 </td> <td class="style6"> 外观照片 </td> <td colspan="5" class="style8"> </td> <td colspan="3" class="style5"> 性能是否正常 </td> <td colspan="2" class="style10"> <input id="Radio1" type="radio" name="是" value=http://www.mamicode.com/"是" />是>
3.ASP.NET读取模板页
ASP.NET读取模板页的方法如下,访问此页面的效果与生成的模板页一样:
string mbPath = Server.MapPath("FaultMangaeTemplate.htm"); //模板页 Encoding code = Encoding.GetEncoding("gb2312"); //字符编码 StreamReader sr = null; string str = null; //读取 try { sr = new StreamReader(mbPath, code); str = sr.ReadToEnd(); str= str.Replace("[#Body#]", tableBody); //Replace方法,替换模板中需要替换的标签 str = str.Replace("[#FKDW#]", enWXJD.DLSName); str = str.Replace("[#FKRQ#]", enWXJD.DDDate); str = str.Replace("[#XH#]", ljxh); str = str.Replace("[#ChaiFenID#]", "<input id=\"hidChaifenID\" type=\"hidden\" value=http://www.mamicode.com/"" + chaifenid + "/"/>");>
上面生成的模板部分有些标签,看一下页面主体部分标签替换的html代码:
/// <summary> ///结合故障部件及部件故障信息,生成html /// </summary> private string bindGZJBJXX() { string strHTML=""; DataTable dtGZBJ = new BT_LJGZ_GZManage().QueryAllGZBJByGZZL("起动机"); for (int i = 0; i < dtGZBJ.Rows.Count; i++) { if (i == 0) { strHTML = "<tr> <td class=\"style5\""; } else { strHTML += "<tr> <td class=\"style5\""; } strHTML += " rowspan=\""; DataTable dtGZXX = new BT_LJGZ_GZManage().QueryAllGZXXByGZBJ(Convert.ToInt32(dtGZBJ.Rows[i]["ID"])); double rowspan = Math.Ceiling((double)dtGZXX.Rows.Count / (double)7); //每行显示7个故障信息 strHTML += Convert.ToString(rowspan); strHTML += "\">"; strHTML += Convert.ToString(dtGZBJ.Rows[i]["GZBJ"]); strHTML += "</td>"; for (int j = 0; j < dtGZXX.Rows.Count; j=j+7) { if (j % 7 == 0) { if (j != 0) { strHTML += "<tr>"; } for (int z = j; z < j + 7; z++) { if (z < dtGZXX.Rows.Count) { strHTML += "<td class=\"style4\">"; strHTML += Convert.ToString(dtGZXX.Rows[z]["GZMC"]); strHTML += "</td>"; strHTML += "<td class=\"style5\">"; strHTML += "<input value=http://www.mamicode.com/"" + dtGZXX.Rows[z]["ID"].ToString() + "/"";>下面看一下,功能实现的页面效果图:
这个功能就简单介绍到这里了,之所以会写下这篇博客,是由于这个功能的设计与实现是第一次做,刚开始实现这个功能的时候不知道从何入手,完成了发现其实它挺简单的,所有的经验都来自于经历,经历的多了,经验也就会多了!
佩特来项目经验小集合(6)___ASP.NET模板页的读取
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。