- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
55-在DataWeb控件显示二进制数据教程
PAGE \* MERGEFORMAT 19
在前面的教程我们阐述了应用程序处理二进制数据的2种模式,以及使用FileUpload 控件从浏览器向服务器文件系统上传文件。当文件上传并存储在文件系统里时,应在相应的数据库记录里存储该文件的存储路径。
我们先来看如何为最终用户提供二进制数据。怎样展示二进制数据呢?这取决于其类型。比如图片,我们将其显示为image;如果是PDFs,Microsoft Word文档、ZIP文件或其它类型的数据,或许提供一个“Download”链接比较妥当。
在本节,我们看如何在GridView和DetailsView一类的数据Web控件里呈现二进制数据,在后面的教程我们将注意力转向将上传文件和数据库联系起来。
?
第一步:提供BrochurePath值
表Categories的Picture列存储相关类的图片信息。具体的讲,为16色的低质量位图,大小为172乘120像素,约11 KB。另外还包括一个约78字节的OLE报头,在显示图片的时候需要将其剥离。为什么会有报头信息呢?因为数据库Northwind源于微软的Access数据库。在Access里二进制数据OLE类型来存储的,该类型会添加报头。现在,我们看如何从图片剥离报头,以便显示。在后面的教程我们将创建一个界面,将带报头的这些位图替换为不带报头的等价的JPG图片。
前面我们考察了如何使用FileUpload控件,让我们继续为服务器文件系统添加文件。不过暂时不用更新Categories表的BrochurePath列,那是下一章的内容。我们现在需要手工为BrochurePath赋值。
在本教程,当你下载东西时,可以看到在~/Brochures7文件夹有7个PDF小册子,每个小册子对应一个种类,Seafood除外。我故意没为Seafood提供PDF小册子,以便探讨如何处理某些记录没有附带二进制数据的情况。在服务器资源管理器里右键点击Categories,选“查看表数据”,输入文件路径,如图1所示。由于Seafood类没有图片,将其BrochurePath的值设为“NULL”。
?
图1:手工为表Categories的BrochurePath列键入值
第2步:在GridView里添加一个下载链接
当为表Categories的BrochurePath列赋值后,我们准备创建一个GridView用于展示每个种类,并附带一个链接下载每个类的小册子。在第4步我们将扩展GridView以显示每个类的图片。
打开BinaryData文件夹的DisplayOrDownloadData.aspx页面并进入设计模式,从工具箱里拖一个GridView控件到页面,设其ID为Categories,从其智能标签选择绑定到一个名为CategoriesDataSource的ObjectDataSource控件。该控件调用类CategoriesBLL的GetCategories()方法。
?
图2:创建一个名为CategoriesDataSource的ObjectDataSource控件
?
图3:设置ObjectDataSource使用CategoriesBLL类
?
图4:调用GetCategories()方法
?
完成设置后,Visual Studio自动的为CategoryID, CategoryName, Description, NumberOfProducts和BrochurePath生成BoundField。移除NumberOfProducts,因为GetCategories()方法用不上,同样将CategoryID移除了。分别把CategoryName和 BrochurePath的HeaderText属性改为“Category”和“Brochure”。做上述修改后,你的GridView and ObjectDataSource的声明代码看起来应该像下面的这样:
asp:GridView ID=Categories runat=server ??? AutoGenerateColumns=False DataKeyNames=CategoryID??? DataSourceID=CategoriesDataSource EnableViewState=False??? Columns??????? asp:BoundField DataField=CategoryName HeaderText=Category ??????????? SortExpression=CategoryName /??????? asp:BoundField DataField=Description HeaderText=Description ????
您可能关注的文档
- 全优课堂2016_2017学年高中物理第1章电磁感应第3节探究感应电流的方向课件.ppt
- 六大银行2008年以来贷款数据分析.docx
- 5.USART实验教程.pptx
- 关于2011年微格试讲的说明.docx
- 5.哺乳纲教程.ppt
- 公需科目《大数据》.doc
- 5.汽轮发电机组分部试运教程.ppt
- 关于农村电子商务前景和发展的调查报告.docx
- 六年制本科文科《大学计算机基础(二)》实验报告册.doc
- 兰州市报纸电视媒体调查报告.doc
- 城市河道生态修复2025:绿色生态河道建设建议.docx
- 2025年高端定制农产品绿色生态农业发展商业计划书.docx
- 2025年卫星通信产业变革趋势及G技术融合深度分析报告.docx
- 智能家居行业隐私安全法规解读与2025年合规性应对策略报告.docx
- 阿里巴巴电商生态圈中电商企业产业扶贫与乡村振兴报告.docx
- 2025年生态环境监测网络在环境法律法规实施中的监督报告.docx
- 22025年餐饮行业供应链管理案例分析及创新实践.docx
- 2025年绿色环保产业扶持资金申请申报流程优化与风险规避报告.docx
- 新国货品牌国际化发展中的品牌创新与产品设计报告2025.docx
- 医药流通企业仓储安全管理与法规遵循案例研究及2025年实施路径.docx
文档评论(0)