将页面(元素)保存至客户端

本文档探讨了如何将网页或页面元素保存到客户端本地,包括使用Devexpress ASPxGridViewExporter、ActiveX对象、JS构造请求回复和服务器端构造请求回复的方案。在执行方案中,重点介绍了删除无效元素的方法,如使用HtmlDocument和Html Agility Pack,并提供了相关的代码设计和实现。
摘要由CSDN通过智能技术生成

 

 

 

页面(元素)客户端本地保存

 

 

 

 

 

 

 

 



需求

用户可将一页面的全部或指定的部分选择性的保存至本地,并且可选择性的设置保存格式(如MS/Word、MS/Excel、HTML)。

   在将页面(或指定部分)保存至客户端本地时,会出现下图所示的问题:包含多余无效的元素。要求剔除无关的页面控件。

方案选择

1.  Devexpress ASPxGridView的ASPxGridViewExporter

方案:在包含ASPxGridView控件的页面中,使用ASPxGridViewExporter导出数据表格。

问题:这种方法导出的样式效果有限制,只能是一行一行记录展示的形式,可以包含表头。但是不能实现将我们自定义复杂表格样式原样导出保存的功能。

2.  ActiveX对象

方案:使用ActiveX对象。

问题:此方案对客户端的浏览器的安全设置有要求。

3.  JS构造请求回复(Response)

方案:在页面中使用JS打开一个全新的请求回复(Response),将页面(或指定部分)写入Response中,并使用文档对象模型(Document)中的“exeCommand”方法执行保存命令(“SaveAs”),浏览器将自动填出“保存文件”提示框。

代码示例:

问题:客户端浏览器(MS/IE)基于安全的考虑,只能存为“HTML”或平面文件(“.csv”)。虽然将文件的后缀改写后(如改为“.doc”),MS/Office可打开文件。但是不符合用户的操作习惯,特别是计算机基础不熟练的用户。

4.  服务器端构造请求回复(Response)

方案:用户在页面中点击按钮发出“保存至本地”请求后,在服务器端构造出相应的回复(Response),将要求的页面(或指定的部分)写入回复中。同时设置回复的文档类型(Content-Type)及编码等(文档头)信息。

注意需要去除需要进行导出的ASPX页面的自验证功能:

共有2步:

1、 配置页面“@Page”;

<%@ PageEnableEventValidation="false"%>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值