ComponentArt.web.ui中文帮助之Grid(三)来自:目夷亭

ComponentArt.web.ui中文帮助之Grid(三)

使用ComponentArt Grid的服务器端模板

通过它的不同的用户个性化定制特征,ComponentArt Grid包括服务器控件对内部内容使用服务器模板的正常能力,这篇文章概述了表格使用服务器端模板的典型用法,同时也指出了开发者可以获得的这些功能支持的事件和方法

在选择使用服务器段模板之前,必须保证读过一遍Web.UI控件模板概述。可能客户端模板更适合你的程序

概述

ComponentArt Grid中的服务器端模板专门用于模板化数据元素。他们允许任何服务器端元素绑定到表格的数据。最主要的,它使表格元素能够包含服务器端控件的能力,能够产生服务器端事件,保持状态和执行其他服务器端逻辑

定义服务器端模板

在服务器端模板能够用于表格之前,我们必须在它的ServerTemplates块中定义

  <ServerTemplates>

    ...

    <ComponentArt:GridServerTemplate ID="LabelTemplate" />

      <Template>

        <asp:Label runat="server" ID="myLabel" BorderWidth="2" Text="<%# Container.DataItem["FullName"] %>" />

      </Template>

    </ComponentArt:GridServerTemplate>

  </ServerTemplates>

上例会在调用此模板的元素中呈现一个有两像素边框、包含fullname字段的标签

要连接定义的模板到表格列,只要简单的设定GridColumnDataCellServerTemplateId到你要使用的服务器模板的ID

  <ComponentArt:GridColumn ... DataCellServerTemplateId="LabelTemplate" />

注意:数据绑定表达式的语法与你可能用过的语法有一些不同。不需要使用DataBinder.Eval来得到表达式。Container.DataItem总是指向模板绑定的GridItem (数据行),你可以简单的使用GridItem的字符串索引来引用行内部的字段

使用ItemDataBound事件

ComponentArt Grid具有对被绑定在一个GridItem上的服务器模板起作用的能力.这个事件是 ItemDataBound事件,它的参数包括模板示例的内容和所包含在的GridItem ,这给了开发者一个机会来在页面被呈现前操纵内部

下面是一个典型的用在Grid中的ItemDataBound实例

1.为列设置服务器端模板

  <ComponentArt:GridColumn ... DataCellServerTemplateId="myTemplate" />

 

定义你要用的模板

  <ServerTemplates>

    ...

    <ComponentArt:GridServerTemplate ID="myTemplate" />

      <Template>

        Here is a button:<br>

        <asp:Button ID="myButton" runat="server"

          Text="<%# Container.DataItem["Name"] %>" />

      </Template>

    </ComponentArt:GridServerTemplate>

  </ServerTemplates>

 

后置代码中的添加委托 :

  private void InitializeComponent()

  {

    ...

 

    Grid1.ItemDataBound += new Grid.ItemDataBoundEventHandler(Grid1_ItemDataBound);

  }

 

定义处理程序:

 

  private void Grid1_ItemDataBound(object sender, GridItemDataBoundEventArgs args)

  {

    // We can modify the content...

    args.Content.Controls.Add(new LiteralControl("Manipulated!"));

 

    // reference individual control instances...

    Button myButton = (Button)args.Content.FindControl("myButton");

 

    // or perform other logic based on the instantiated content.

    Response.Write("Instantiated " + myButton.UniqueID +

      " for item " + args.Item["Name"];

  }

 

使用ItemCommand事件

ComponentArt Grid能够响应植入在内部的服务器模板产生的事件,这个事件就是 ItemCommand, 它的参数包括引发事件的控件和模板所属的行(GridItem).

下面是一个典型的用在Grid中的ItemCommand实例

1.为列设置放置可以触发事件的控件的服务器端模板

 

  <ComponentArt:GridColumn ... DataCellServerTemplateId="linkButtonTemplate" />

 

定义你要用的模板:

 

  <ServerTemplates>

    ...

    <ComponentArt:GridServerTemplate ID="linkButtonTemplate" />

      <Template>

        <asp:LinkButton ID="lb" runat="server"

          Text="ItemCommand" CommandName="MyCommand" />

      </Template>

    </ComponentArt:GridServerTemplate>

  </ServerTemplates>

 

添加事件委托到后置代码

  private void InitializeComponent()

  {

    ...

 

    Grid1.ItemCommand += new Grid.ItemCommandEventHandler(Grid1_ItemCommand);

  }

 

定义事件处理程序:

 

  public void Grid1_ItemCommand(object sender, GridItemCommandEventArgs args)

  {

    Response.Write("Command " + ((LinkButton)args.Control).CommandName +

      " issued on item " + args.Item["ID"]);

  }

 

获得模板实例内部控件的引用

为获得模板实例内部控件的引用,表格控件提供了一个对FindControl方法的重写. Grid.FindControl能够取得4个参数:层级编号(level index),列编号,行编号,和空间ID.这个调用能够通过给定的层级,,,元素ID找到控件

 

例如,下面的调用能够找到第一层第三列第七行的模板内的控件"myButton"

 

  Button myButton = (Button)Grid.FindControl(0, 3, 7, "myButton");

 

为了更好的使用FindControl重写,我们可以使用GridColumnCollection GridItemCollectionIndexOf方法.这样,我们可以通过列的DataField和与行匹配的值找回行号和列号

 

  int columnIndex = Grid.Levels[0].Columns.IndexOf("Summary");

  int itemIndex = Grid.Items.IndexOf("UniqueID", 3984);

   

  Button myButton = (Button)Grid.FindControl(0, columnIndex, itemIndex, "myButton");

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
漂亮的ComponentArtWebUI及Demo源码 产品特征: 先进的用户界面控件套装:为高级Web应用程序开发提供了16个优质的用户界面控件。 专为ASP.NET而设计:为三个先进且更强大的框架而设计:ASP.NET 1.0, ASP.NET 2.0和ASP.NET AJAX。 强大的客户端呈现技术:行业中最先进的Web用户界面技术。 深入整合ASP.NET AJAX:最理想的完全应用AJAX框架的控件。 全面的帮助文档和技术支持:提供了完善的产品在线帮助文档和全面的技术支持资源。 企业级服务和培训:为企业级项开发定制专门的产品咨询和培训服务。 灵活的产品授权:针对开发者,服务和企业级应用提供不同的授权方式。 ComponentArt Web.UI 2007.1 更新信息 ComponentArt Web.UI 2007.1 版本中发布了三个最新的控件: ToolBar for ASP.NET ComboBox for ASP.NET Dialog for ASP.NET 以下为Web.UI组件2007.1版本中新增的功能特征: ComponentArt Grid 可以在Callback模式中缓存页面 (CallbackCachingEnabled和CallbackCacheSize属性)。 可在Callback模式中预加载页面到缓存中 (CallbackCacheLookAhead属性)。 页面在滑动条经过时可提取页面 (SliderFetchDelay属性)。 客户端滚动事件。 客户端beforeCallback事件。 ColumnResizeRedistributeWidth属性用于控制缩放状态。 ComponentArt Menu 引入(已选)checking和(未选)unchecking项的概念。允许菜单项成为复选框或者单元按钮。 引入(图标透明度)IconVisibility的概念。可使图标只在该项被选中或该项根录时显示。 添加更多对上下文菜单扩展的控制:(TopGroupExpandDirection, TopGroupExpandOffsetX, TopGroupExpandOffsetY)。 增加了ExpandDisabledItems的布尔值属性。 改进了IE7中的元素覆盖运算法则,优化其执行性能。 ComponentArt MultiPage 增加了IE转换效果 (Transition, TransitionDuration属性)。 Web.UI 2007.1 版本没有进行整体框架的改变,只是在Web.UI 2006.2的基础上进行了改进,所以通过最新的ComponentArt.Web.UI.dll可以很方便的对之前的应用程序进行编译。 ComponentArt Web.UI是全球知名的ASP.NET用户界面控件包,它提供了ComponentArt独特的界面呈现技术,支持强大的AJAX技术,可以为您提供最先进的ASP.NET Web用户界面。ComponentArt Web.UI专为ASP.NET框架设计,它包含16个支持AJAX技术的优质用户界面控件,并可应用在ASP.NET 1.0, ASP.NET 2.0, ASP.NET AJAX框架中。 2008年3月27日,专注于ASP.NET Web.UI及Charting控件开发的ComponentArt又发布了Web.UI的最一代版本:2008.1。该版本有四个框架平台:ASP.NET 1.0、ASP.NET 2.0、ASP.NET Ajax,还有当然是最新的.NET框架支持的ASP.NET 3.5了。 2008.1不仅对其代码的运行效率进行了优化,还最增了一个大家期盼已久的成员:Upload。上传空间虽已不是罕见的东东,可是ComponentArt提供的这款不会让你和你的开发团队失望的。 更主要的是ASP.NET 3.5的版本的发布的,同样,特性和功能都具备的同时,也加入了对LINQ的高度支持。这样,ASP.NET 3.5的开发人员也可以享用到这份大餐喽~ Advanced User Interface Control Suite: Includes 19 Premium User Interface controls for development of sophisticated web applications. Built for ASP.NET: Available in four progressively more powerful framework builds: ASP.NET 1.0, ASP.NET 2.0, ASP.NET AJAX and ASP.NET 3.5. Powerful Client-side Rendering Technology: Featuring the most advanced web user interface technology in the industry. Deepest ASP.NET AJAX Integration: The first true controls to fully exploit the most advanced AJAX framework available. Comprehensive Documentation and Support: Featuring complete product documentation online and all-inclusive technical support resources. Enterprise Consulting and Training: Customized consulting and training services are offered to support Enterprise development projects involving larger teams of developers. Flexible Licensing: Available at Developer, Subscription and Enterprise levels. ComponentArt Web.UI 包含以下用户界面控件 Calendar (日历) Grid (表格) Rotator (旋转器) TabStrip (标签) CallBack (回调) Menu (菜单) SiteMap (地图) ToolBar (工具条) ComboBox (组合框) MultiPage (分页) Snap (抓取) TreeView (树形列表) Dialog (对话框) NavBar (导航条) Splitter (框架分离) WebChart Lite (图表) 如果涉及到安装序列号,请填写:3JKX6-YJW6X-GJJDP app_data为应用到的Sql和Access数据库文件 documentation下为官方的相关文档 DllCode下为控件的源码

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值