组件与服务的集成示例

在本文中,将探讨一个示例应用程序,该程序通过结合三个不同的Web服务数据,并使用ComponentOneASP.NET控件展示结果。这种类型的应用程序通常被称为"mash-up",它能够将来自多个源(如RSS源、Web服务或其他公共接口)的内容整合在一起。

ComponentOne Studio Enterprise是一个全面的组件套件,用于开发Windows、Web和移动应用程序。对于ASP.NET开发,Studio Enterprise包括许多控件,如网格、2D和3D图表、报表设计器/查看器、用户界面和输入元素,以及生成流行文件格式(如Adobe PDF、Microsoft Excel和ZIP压缩)的组件。

术语解释

异步JavaScript和XML(AJAX)是一种开发技术,用于创建丰富、交互式的Web应用程序,这些应用程序的体验更接近桌面应用程序,用户习惯于即时响应。在传统的Web应用程序中,用户输入被发送到服务器,服务器对数据进行处理并响应,通过发送整个更新后的Web页面来响应,这个过程被称为"回发"。在AJAX启用的应用程序中,与服务器交换少量数据,这样只需要刷新页面的受影响部分。对用户来说,页面看起来更快、更响应。

Microsoft ASP.NET AJAX(以前代号为"Atlas")是ASP.NET 2.0的扩展,提供了一个框架,用于创建高效、高度交互式的Web应用程序,这些应用程序可以在最受欢迎的浏览器上运行。特别是,UpdatePanel服务器控件标识了一个页面区域,使用部分页面呈现进行更新。有关更多信息,包括最新下载,请访问Microsoft ASP.NET AJAX网站。

关于ComponentOne Studio Enterprise

ComponentOne Studio Enterprise的2006 v2版本引入了对AJAX在传统ASP.NET 2.0(即没有"Atlas"扩展)中的支持。例如,C1WebGrid控件添加了一个CallbackOptions属性,用于指定哪些操作应该使用AJAX机制。有关特定组件中AJAX实现的详细信息,请参见。

2006 v3版本的Studio Enterprise引入了对"Atlas"扩展的兼容性。这意味着任何ComponentOneASP.NET组件都可以安全地位于"Atlas" UpdatePanel内,并参与部分页面渲染,而无需任何特殊编码或属性设置。

此版本还引入了一个新的产品,ComponentOne WebSplitter for ASP.NET,它实现了两个具有可调整大小面板的容器控件,类似于Windows Forms SplitContainer控件:

  • C1WebSplitter,用于传统的ASP.NET 2.0
  • C1UpdateSplitter,用于ASP.NETAJAX("Atlas")

C1WebSplitter和C1UpdateSplitter在功能上是等效的。唯一的区别是C1UpdateSplitter控件在幕后创建和管理一个"Atlas" UpdatePanel。

运行示例应用程序

要查看mash-up示例的实际运行,请。输入一个邮政编码到文本框中,然后点击带有箭头的绿色圆圈。应该看到以下变化:

  • 文本框下方的标签现在显示相应的城市和州。
  • 天气框显示今天的天气预报。
  • 最上面的网格显示附近电影院的列表。

现在,尝试与表单进行交互:

  • 选择"周预报"单选按钮。注意,出现了额外的天气数据和垂直滚动条,但网格没有闪烁。
  • 在剧院网格中选择一行。注意,其他行没有重绘。电影网格根据选定的行进行更新。
  • 点击垂直分隔条上的点状图像以折叠左侧面板。再次点击以恢复左侧面板。
  • 点击水平分隔条上的点状图像以折叠顶部面板。再次点击以恢复顶部面板。
  • 抓住分隔条上的双箭头光标,然后将其拖动到不同的位置。面板相应地调整大小,并且根据需要显示或移除滚动条以适应内部内容。

设计表单

mash-up应用程序的主要视觉元素是一个垂直方向的C1UpdateSplitter控件。左侧面板包含一个C1WebTopicBar控件,它提供可折叠的组,作为任意内容的容器。右侧面板包含另一个C1UpdateSplitter控件,这次是水平方向。这个内部分隔器的顶部和底部面板每个都包含一个C1WebGrid控件。这两个网格形成了电影院和电影之间的主-详细信息关系。

表单还包含三个非可视组件:一个设置了PartialRendering属性为True的ScriptManager,一个用于将主网格绑定到电影院列表的ObjectDataSource,以及一个在部分页面呈现期间显示动画反馈的UpdateProgress组件。

在设计时,C1UpdateSplitter允许将任意组件拖放到它的面板上。下图显示了一个默认垂直方向的分隔器,其左侧面板添加了一个C1WebTopicBar组件。

还可以设计表面上嵌套的C1UpdateSplitter控件。在下一个图中,第二个C1UpdateSplitter被添加到第一个分隔器的右侧面板。内部分隔器的方向被更改为水平,并且每个内部面板都添加了一个C1WebGrid组件。

这五个组件构成了mash-up页面的整体结构。对于最外层(垂直)分隔器C1UpdateSplitter1,设置了以下属性:

AutoResize = True BorderColor = White Height = 500px SplitterDistance = 256 Width = 800px

SplitterDistance值表示分隔条的初始位置,以像素为单位。此外,还为C1UpdateSplitter1设置了以下子对象属性:

Bar.CollapsedCssClass = SplitterCollapsedVertical Bar.CollapseHoverImageUrl = ~/splitter_colhover_vert.gif Bar.CollapseImageUrl = ~/splitter_col_vert.gif Bar.CssClass = Splitter Bar.DragCssClass = SplitterDrag Bar.ExpandHoverImageUrl = ~/splitter_exphover_vert.gif Bar.ExpandImageUrl = ~/splitter_exp_vert.gif Bar.HoverCssClass = SplitterHover Panel1.BackColor = 122, 160, 230 Panel2.ScrollBars = None

请注意,滚动条对于第二个面板是禁用的,因为滚动将由嵌套的水平分隔器处理。CssClass属性引用了Default.aspx中内联样式表中定义的命名样式。这些样式用于控制分隔条的背景颜色和边框。

对于最内层(水平)分隔器C1UpdateSplitter2,设置了以下属性:

AutoResize = True BorderColor = #7AA0E6 BorderStyle = Solid BorderWidth = 1px Height = 100% Orientation = Horizontal SplitterDistance = 240 Width = 100%

请注意,尺寸被指定为100%而不是绝对单位。此外,还为C1UpdateSplitter2设置了以下子对象属性:

Bar.CollapsedCssClass = SplitterCollapsedHorizontal Bar.CollapseHoverImageUrl = ~/splitter_colhover_horz.gif Bar.CollapseImageUrl = ~/splitter_col_horz.gif Bar.CssClass = Splitter Bar.DragCssClass = SplitterDrag Bar.ExpandHoverImageUrl = ~/splitter_exphover_horz.gif Bar.ExpandImageUrl = ~/splitter_exp_horz.gif Bar.HoverCssClass = SplitterHover
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485