65.9K
CodeProject 正在变化。 阅读更多。
Home

ASP.NET 2.0 VS 自定义渲染器 - 数据可绑定图像控件 V.2.0

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2007年7月17日

CPOL

3分钟阅读

viewsIcon

29422

downloadIcon

137

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 字段。

Screenshot - databind.gif

您可以绑定

  • ImageValue -> 到图像字段。
  • TextToRender -> 到文本/日期/时间/数值字段(此功能可用于呈现带有特殊字符的文本,或防止电子邮件或其他联系人数据自动收集)。
  • PictureUrl -> 到包含图像文件 URL 的字段。
  • UniqueIdValue - 您可以将此属性绑定到唯一的 ID 字段。 此属性用于组成文件名。 如果未指定任何值,则将为每个新图像生成一个新的 GUID。

根据您的项目更改这些属性

  • FolderToSaveImage - 您站点内将生成图像保存到的文件夹(默认值为 "./images/")。
  • FilePrefix - 此前缀将添加到生成的文件名的开头。

Screenshot - adv2.jpg

其他属性不言自明

  • ImageWidth
  • ImageHeight
  • ImageBorderStyle
  • ImageBorderWidth
  • ImageBorderColor
  • ImageToolTip
  • AlternateText
  • TextBackgroundColor
  • TextForeColor
  • TextFont

历史

此项目托管在 CodePlex 网站上。 可以在此处找到最新版本。

© . All rights reserved.