【asp源码栏目提醒】:本文主要为网学会员提供“Asp net MVC、Extjs(运用Linq to SQL和List泛型)批量更新、删除、打印(使用CKEditor)、导出Excel - 计算机教材”,希望对需要Asp net MVC、Extjs(运用Linq to SQL和List泛型)批量更新、删除、打印(使用CKEditor)、导出Excel - 计算机教材网友有所帮助,学习一下!
Asp.net MVC、Extjs运用Linq to SQL和List泛型批量更新、删除、打印使用CKEditor、导出Excel 1、批量操作思想的大概模型 更新 删除 2、导出Excel的特点 按页面渲染来导出数据 3、打印运用的是CKEditor 4、一些程序解释说明 4.1page指令 validateRequest的作用 在 Web应用程序中要阻止依赖于恶意输入字符串的黑客攻击约束和验证用户输入是必不可少的。
跨站点脚本攻击就是此类攻击的一个示例。
其他类型的恶意数据或不需要的数据可以通过各种形式的输入在请求中传入。
通过在应用程序中的较低级别限制允许通过的数据类型就可以阻止不希望的事件即使当使用代码的程序员没有恰当地使用合适的验证技术时也是如此。
当请求验证检测到潜在的恶意客户端输入时会引发此异常来中止请求处理。
请求中止能够指示危害您的应用程序安全的企图例如跨站点脚本攻击。
强烈建议让您的应用程序显式地检查与请求中止有关的所有输入。
不过您也可以通过将 Page 指令中的 validateRequest 属性设置为 false 来禁用请求验证如下面的示例所示 要禁用应用程序的请求验证必须修改应用程序的 Web.config 文件或创建一个 Web.config 文件并将 pages 节的 validateRequest 属性设置为 false如下面的示例所示 AcceptVerbsHttpVerbs.Post ValidateInputfalse//将它导出excel的验证设置为false public ActionResult ExportGrid if RequestExportContent string tmpFileName export.xls string tmpContent RequestExportContent//获取传递上来的文件内容 if RequestExportFile tmpFileName RequestExportFile//获取传递上来的文件名 tmpFileName System.Web.HttpUtility.UrlEncodeRequest.ContentEncoding.GetBytestmpFileName//处理中文文件名的情况 Response.Writeltscriptgtdocument.closelt/scriptgt Response.Clear Response.Buffer true Response.ContentType application/vnd.ms-excel Response.AddHeaderContent-Disposition attachmentfilename tmpFileName Response.Charset System.IO.StringWriter tmpSW new System.IO.StringWriter System.Web.UI.HtmlTextWriter tmpHTW new System.Web.UI.HtmlTextWritertmpSW tmpHTW.WriteLinetmpContent Response.WritetmpSW.ToString Response.End return View 4.2 将前台的数据转换为Json字符串 传送 给后台进行List泛型反序列化需要一些凑合的函数或者方法 Ext.namespaceStrToJson StrToJson.ToJsonUpdateRecord functionitems var jsonData for i 0 i items.length i record itemsi if record.dirty jsonData Ext.util.JSON.encoderecord.data jsonData jsonData.substring0 jsonData.length - 1 return jsonData 4.3 对ExtJs官方提供的ExportToGrid.js的文件可以自己进行部分的改动。
var Base64 function // Private property var keyStr ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Asp net MVC、Extjs(运用Linq to SQL和List泛型)批量更新、删除、打印(使用CKEditor)、导出Excel为[网学网-网友上传,谢谢支持]。/ // Private method for UTF-8 encoding function utf8Encodestring string string.replace/rn/gn var utftext for var n 0 n string.length n var c string.charCodeAtn if c 128 utftext String.fromCharCodec else ifc 127 c 2048 utftext String.fromCharCodec 6 192 utftext String.fromCharCodec 63 128 else utftext String.fromCharCodec 12 224 utftext String.fromCharCodec 6 63 128 utftext String.fromCharCodec 63 128 return utftext // Public method for encoding return encode : typeof btoa function functioninput return btoautf8Encodeinput : function input var output var chr1 chr2 chr3 enc1 enc2 enc3 enc4 var i 0 input utf8Encodeinput while i input.length chr1 input.charCodeAti chr2 input.charCodeAti chr3 input.charCodeAti enc1 chr1 2 enc2 chr1 3 4 enc3 chr2 15 6 enc4 chr3 63 if isNaNchr2 enc3 enc4 64 else if isNaNchr3 enc4 64 output output keyStr.charAtenc1 keyStr.charAtenc2 keyStr.charAtenc3 keyStr.charAtenc4 return output Ext.overrideExt.grid.GridPanel getExcelXml: functionincludeHidden var worksheet this.createWorksheetincludeHidden var totalWidth this.getColumnModel.getTotalWidthincludeHidden return this.title worksheet.height worksheet.width False False //边框颜色 //这里是表格中奇数行的背景色默认为FFFFFF白色 //这里是表格中偶数行的背景色默认为FFFFFF白色 worksheet.xml createWorksheet: functionincludeHidden // Calculate cell data types and extra class names which affect formatting var cellType var cellTypeClass var cm this.getColumnModel var totalWidthInPixels 0 var colXml var headerXml var visibleColumnCountReduction 0 var colCount cm.getColumnCount for var i 0 i colCount i if cm.getDataIndexi includeHidden cm.isHiddeni var w cm.getColumnWidthi totalWidthInPixels w //这里做一些判断将一些网络参数如‘操作’过滤 if cm.getColumnHeaderi cm.getDataIndexioperate cellType.pushNone cellTypeClass.push visibleColumnCountReduction else colXml headerXml cm.getColumnHeaderi var fld this.store.recordType.prototype.fields.getcm.getDataIndexi switchfld.type case int: cellType.pushNumber cellTypeClass.pushint break case float: cellType.pushNumber cellTypeClass.pushfloat break case bool: case boolean: cellType.pushString cellTypeClass.push break case date: cellType.pushDateTime cellTypeClass.pushdate break default: cellType.pushString cellTypeClass.push break var visibleColumnCount cellType.length - visibleColumnCountReduction var result height: 9000 width: Math.floortotalWidthInPixels 30 50 // Generate worksheet header details. var t colXml // // // // // //表头标题 // //Generated by ExtJS // // // headerXml // Generate the data rows from the data in the Store for var i 0 it this.store.data.items l it.length i l i t var cellClass i 1 odd : even r iti.data var k 0 for var j 0 j colCount j if cm.getDataIndexj includeHidden cm.isHiddenj var v rcm.getDataIndexj if typeof cm.configj.renderer function cellTypek DateTime var m v cm.configj.rendererv m iti i j this.store var re //g if v v v.toString.replacere else v if cellTypek None t if cellTypek DateTime t v.formatY-m-d else t v t k t result.xml t Blank 1 32767 600 False False return result 5、总结 这个EditorGridPanelr做的缺点很多。
5.1、在EditorGridPanel的批量更新上用了SQL的update语句因为Linq的批量更新上转化后的SQL语句在效率上还是有些缺憾的。
当然这样子写程序有违背了程序之美。
其中批量更新网上有不少的例子如
Asp net MVC、Extjs(运用Linq to SQL和List泛型)批量更新、删除、打印(使用CKEditor)、导出Excel为[网学网-网友上传,谢谢支持]。但是因为能力有限所以只能用自己的方法解决一些像这样子的问题。
5.2、在导出Excel时暂时我只做了导出当前的页面没有考虑导出全部的页面。
而且也试过了几个浏览器如firefox、IE等但是不完全兼容。
firefox可以导出IE7、IE8也可以。
5.3、打印工作做得不大好可以打印选中的记录却打印不了“根据页面渲染后”如减少列按姓名、编号排序。
在很多方面上做得还是不够完整。
5.4、直接用SQL的Update语句要是断电的话那怎么办更新数据更新到一半所以在异常捕获方面也做得不大好很乐意大家提出建议。
6、以下是相关配置和使用的环境 win7系统 vs2008 sp1 SQL2005 .NET FrameWork3.5 extjs3.2版本 ckeditor3.4版本 7.下载 因为源代码没有加入Extjs和ckeditor所以这部分添加麻烦读者自己到它们的官方网站下载了。
Extjs官方下载包
Asp net MVC、Extjs(运用Linq to SQL和List泛型)批量更新、删除、打印(使用CKEditor)、导出Excel为[网学网-网友上传,谢谢支持]。官方下载包
Asp net MVC、Extjs(运用Linq to SQL和List泛型)批量更新、删除、打印(使用CKEditor)、导出Excel为[网学网-网友上传,谢谢支持]。源代码下载包
Asp net MVC、Extjs(运用Linq to SQL和List泛型)批量更新、删除、打印(使用CKEditor)、导出Excel为[网学网-网友上传,谢谢支持]。
上一篇:
转 ASP NET和PHP性能比较
下一篇:
问卷调查可以自动生成试卷等,并且只能一个用户登录