Visual Basic 8 (2005)WebFormsVisual Studio 2005.NET 2.0IntermediateDevVisual StudioWindows.NETVisual BasicASP.NET
ASP.NET 2.0 VS 自定义渲染器 - 数据可绑定图像控件 V.2.0
V.2. 代码已更正 - 此项目包含一个 Web 自定义控件,用于直接从数据库呈现图像。可用于图像字段、文本、日期或数字字段(它生成一个包含文本的图像)以及 URL 字段(类似于常规图像控件)。
引言
此项目包含一个 Web 自定义控件,用于直接从数据库呈现图像。它可用于图像字段、文本、日期或数字字段(它生成一个包含文本的图像)以及 URL 字段(类似于常规图像控件)。
背景
此项目受到了 dev2dev 在 CodeProject 上发表的一篇文章的启发:在 ASP.NET 中创建动态图像。 部分代码取自该项目。
v.2.0 中的更改
V.1.0 在所有系统上均无法正常工作。 此版本已在 WinXP SP2 x32 和 Windows Vista x64 上进行了测试。
添加的属性
FolderToSaveImage
- 您站点内将生成图像保存到的文件夹(默认值为 "./images/")。FilePrefix
- 此前缀将添加到生成的文件名的开头。UniqueIdValue
- 您可以将此属性绑定到唯一的 ID 字段。 此属性用于组成文件名。 如果未指定任何值,则将为每个新图像生成一个新的 GUID。
生成的文件名将采用这种形式 FilePrefix
+ UniqueIdValue
(或 GUID) + ".gif"。
为了避免硬盘空间问题,您可以在页面的 LoadComplete
事件上通过调用控件的 CleanFolder
过程或直接在此事件中添加此子代码来删除生成的图像。
示例
Protected Sub Page_LoadComplete(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.LoadComplete
Dim Files() As String = System.IO.Directory.GetFiles(_
Me.Page.Server.MapPath("./your temporary image folder"), _
"your file prefix" & "*.gif")
Dim i As Integer
For i = 0 To Files.GetUpperBound(0)
System.IO.File.Delete(Files(i))
Next i
End Sub
工作原理
基本上,此控件从数据库字段(图像、文本、日期/时间、数值)获取值,生成临时图像,并将生成的文件转发到经典图像控件。
关注点
要测试此控件
- 打开或创建一个网站。
- 将VSCustomRendererLibrary引用添加到网站。
- 添加一个用于存储生成图像的文件夹
- 打开/创建一个新的ASPX页面。
- 添加一个连接到表或视图的
SqlDataSource
(此项目已使用 SQL Server 2005 EE 进行了测试)。 - 添加一个
GridView
并将其连接到SqlDataSource
。 - 在
GridView
中,添加图像列并将其转换为模板字段。 - 从
GridView
工具栏菜单中选择编辑模板。 - 将
VSCustomRenderer
添加到ItemTemplate
中。 将控件绑定到DataSource
字段。
您可以绑定
ImageValue
-> 到图像字段。TextToRender
-> 到文本/日期/时间/数值字段(此功能可用于呈现带有特殊字符的文本,或防止电子邮件或其他联系人数据自动收集)。PictureUrl
-> 到包含图像文件 URL 的字段。UniqueIdValue
- 您可以将此属性绑定到唯一的 ID 字段。 此属性用于组成文件名。 如果未指定任何值,则将为每个新图像生成一个新的 GUID。
根据您的项目更改这些属性
FolderToSaveImage
- 您站点内将生成图像保存到的文件夹(默认值为 "./images/")。FilePrefix
- 此前缀将添加到生成的文件名的开头。
其他属性不言自明
ImageWidth
ImageHeight
ImageBorderStyle
ImageBorderWidth
ImageBorderColor
ImageToolTip
AlternateText
TextBackgroundColor
TextForeColor
TextFont
历史
此项目托管在 CodePlex 网站上。 可以在此处找到最新版本。