Chinaunix首页 | 论坛 | 博客
  • 博客访问: 198304
  • 博文数量: 264
  • 博客积分: 6010
  • 博客等级: 准将
  • 技术积分: 2740
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-03 13:25
文章分类

全部博文(264)

文章存档

2011年(1)

2009年(263)

我的朋友

分类: 系统运维

2009-06-26 16:10:51

 为了创建一个能让用户从目录中选择报告,笔者利用了ASP.net中的WebParts框架,而不是选择创建一个真正的WebPart,笔者所用的是ASP.net程序员都能理解的工具:用户控件。

  不过笔者的方案并不完善。虽然真正的WebPart显示的是描述性信息,但是用户控件却不是。此外,笔者还没有解决设定用户控件值以实现自定义WebPart的问题。

  在自定义报告控制板上,这些性能都会显得十分有用。在可得的用户控件目录中,每个用户控件都能够显示一点,这样用户就更容易明白报告内容。另外,真正的WebPart会让用户提供输入值以自定义报告。例如,默认报告或许会显示所有区的销售情况,而用户可以自定义报告以便只显示用户真正需要看到的部分。

  这些选项即便是在使用用户控件的时候也都能获得。

  执行描述

  将用户控件作为WebPart使用的第一步是让它执行 ︳WebPart界面,如下所示:

  Partial class AnnualSalesReportUserControl

  Inherits system.Web.UI.UserControl

  Implements IWebPart

  这一更改所带来的改变是为用户控件增加了六个属性,分别 是:Title,Subtitle,Description,TitleUrl,CataloglconlmageUrl和 TitleIconImageUrl。其中前四个属性是最容易执行的属性,因为他们只要求一个字符串值。在许多方面,Title和Subtitle是最重 要的属性,因为他们能被自动显示到WebForm或WebPart上,或者是当控件显示到目录时被自动显示。

  用户可以改变Title属性并将其作为自定义WebPart操作的一部分,但是Subtitle属性是固定的。基于这种差异,你应该用 Subtitle属性对需要用户执行的自定义WebPart进行单独描述。Title属性应该有预设值能反应报告的默认设定。默认情况下,销售报告显示了 所有地区的销售情况但是可以让用户选择指定的季节,那么好的Title可以是"Sales Report"。执行这些设定需要这些代码:

  

      Private _title As string = "All Regions"

  Public ReadOnly Property Subtitle() As String _

  Implements System.Web.UI.WebControls.WebParts.IWebPart.Subtitle

  Get

  Return "Sales Report"

  End Get

  End Property

  Public Property Title() As String _

  Implements System.Web.UI.WebControls.WebParts.IWebPart.Title

  Get

  Return _title

  End Get

  Set(ByVal value As String)

  _title = value

  End Set

  End Property


 执行自定义

  下一步是让用户自定义用户控件的工作方式。对于一份报告,这或许意味着让用户设置发送到报告选择标准的参数。报告的默认参数可以是一个星号,但是纵观所有属性用户可能被允许使用某一特定区

  你只需要创建接受该区域的属性,然后为其添加Personalizable和WebBrowsable属性,如下所示:

  

      Private _region As &string = "*"

  < Personalizable(True) > _

  < WebBrowsable()> _

  Public Property Region() As String

  Get

  Return _region

  End Get

  set(ByVal value As String)

  _region = value

  RegenerateReport(_region)

  End Set

  End Property

  仅是添加个性化属性还不够,你还要为页面添加控件,这样可以让用户设定相应的属性。需要两个控件:第一个是从工具箱的WebParts标签中向页面添加EditorZone,然后你需要往这一区域中添加PropertyGridEditorPart。

  最后,要让用户把控件放到编辑模式中。要做到这一点,首先要向页面中添加一个按钮,按钮为菜单控件提供了编辑选项,如此,WebPart框架就可以添加用户控件了。添加按钮的代码如下所示:

  Me.WebPartManager1.DisplayMode = WebPartManager.EditDisplayMode

  现在,当用户需要自定义WebPart/User Control时,可以点击按钮并选择用户控件里菜单中的编辑选项。完成这些操作以后,PropertyGridEditorPart会出现在页面,并与 标记为自定义属性的控件一起存在。用户可以输入数值来控制WebPart。ASP.net的WebPart框架会节省设置以便用户下次浏览页面时使用。

阅读(537) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~