ASP.NET自定义控件 第八天 显示多个条目星级评分的列表控件

1. 引言

前几次任务里我们开发的星级控件只能显示一个条目的评分,在现实生活中, 经常会遇到需要向用户展示一系列数据的评分状态,例如下图所示:

列表控件-">

本次任务里,我们将一起开发这样一个控件。

广告时间——最近在尝试写英文文章,申请了一个英文博客www.dev6.cn,欢 迎大家留下墨宝

2. 分析

通过上图可以看到,该自定义控件是一系列数据评分等级的列表,很显然需要 作为一个数据绑定控件来实现才可以灵活的显示多条数据,并且在该列表上方显 示了标题和当前的日期,为了允许用户灵活的定义标题和二级标题(当前日期) ,有必要引入模版的概念,由用户编辑模版,最终按照模版内容显示。如此看来 再使用DataBoundControl作为自定义控件的基类就不太适合了,因为我们要在该 控件中包含多个子控件,那么我们应该选择哪个类作为基类?

回忆一下第六天的任务中数据绑定控件的类关系图,其中有一个继承自 DataBoudControl类的CompositeDataBoundControl类,该类是.NET Framework 2.0中新增的一个类,用作绑定到数据源中的数据服务器控件的基类,该定义定义 如下:

public abstract class CompositeDataBoundControl : 

DataBoundControl, INamingContainer

可以看到,该在只是在继承DataBoundControl类的基础上实现了 INamingContainer,这意味着该类所包含的子控件都会生成唯一的ID属性。

但是CompositeDataBoundControl是如何实现数据绑定的呢,换句话说,如果 某一个页面包含了一个复杂数据绑定控件,在某一个服务器端控件引起回发后, 如何确保数据绑定控件能正确的被填充呢?按照设计,ASP.NET中的数据绑定组合 控件只能从数据绑定中获取数据,并且不会缓存任何绑定的数据,因此,需要提 供一个特殊的方法来处理回发事件。

再次回顾一下DataBoundControl这个类,我们来分析一下数据是如何被显示出 来的。在DataBoundControl类上重载了BaseDataBoundControl类上定义的 PerformSelect方法,该方法如下所示:

protected override void PerformSelect()
{
  if (this.DataSourceID.Length == 0)
  {
    this.OnDataBinding(EventArgs.Empty);
  }
  DataSourceView data = this.GetData();
  this._arguments = this.CreateDataSourceSelectArguments();
  this._ignoreDataSourceViewChanged = true;
  base.RequiresDataBinding = false;
  this.MarkAsDataBound();
  data.Select(this._arguments, new
  DataSourceViewSelectCallback(this.OnDataSourceViewSelectCallback));
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据
, 控件
, this
, 控件任务
, 一个
, 模版
, angularjs等级评分
, 星级评分
, 评分控件
, js星级评分
, 评分
, jQuery星级评分
自定义评分条
,以便于您获取更多的相关知识。

时间: 2024-09-10 13:12:57

ASP.NET自定义控件 第八天 显示多个条目星级评分的列表控件的相关文章

ASP.NET自定义控件 第七天 开发具有丰富特性的列表控件

1. 引言 在上次任务里,我们为星级控件增加了数据绑定的特性,但是在实际运用中还 会产生更多的需求,例如用户可能希望创建一个课程列表(如图1): 开发具有丰富特性的列表控件-"> 或者在数据项比较多的时候,能够手动控制数据的排列方式(图2) 本次任务中,我们将一起开发这样的控件. 2. 分析 以上两个图例中显示的都是列表控件,在ASP.NET2.0中ListControl类是列表 控件的父类,通过上次任务的分析可以了解CheckBoxList.RadioButtonList和 DropDo

ASP.NET 2.0移动开发之列表控件

asp.net|控件 概述 在很多情况下,我们都会使用到列表控件来方便用户选择一些选项.例如在某网站上注册新用户时,通常会询问你的性别是"男"还是"女",这时我们用单项按钮以供用户做出相应的选择.还有当你填写自己的家庭地址时,通常会使用到一个包含各省省名的下拉列表来供用户直接选择,这样可以减少用户的输入量.上述的这些单项按钮和下拉列表都在ASP.NET移动程序中都是以列表控件的形式存在的.我们可以使用列表控件来呈现各种形式(单项.多选.下拉列表)的列表,以供用户选择

asp.net界面设计时怎样实现停靠在某一侧的panel控件隐藏或显示,就像visual的工具栏一样?

问题描述 asp.net界面设计时怎样实现停靠在某一侧的panel控件隐藏或显示,就像visual的工具栏一样? 解决方案 解决方案二:一个div,旁边飘一个小图片,点击这个小图片,控制div的display为显示或隐藏,再不济,控制其width为0也行

ASP.NET 数据列表控件的分页总结(一)自定义方法分页和PageDataSource类分页

在Asp.net中,提供了三个功能强大的列表控件:GridView.DataList和Repeater控件,但其中只有GridView控件提供分页功能.虽然DataGrid提供了分页功能,不过看上去功能有限,但是我们可以通过GridView的一些属性来获取状态以及增加首页.尾页功能按钮.如果在速度效率不是很讲究的情况下,由DataGrid自己管理分页还是不错的,付出的代价就是要把整个相关数据取出来后再删选指定页的数据.好处就是开发速度快,不需要写分页的存储过程.所以若需要追求执行效率,而且数据量

C#发现之旅-高性能ASP.NET树状列表控件(上)

已有树状列表控件分析发现问题 近期发现有人在ASP.NET项目开发中使用一种叫dtree的树状列表组件加载缓慢.这也是笔者撰写本章的动机.毛主席教导我们,做事要发现问题,分析问题和解决问题.首先我们发现了已有的树状列表WEB控件加载缓慢的问题,接下来就很自然的是分析问题了. 下图就是dtree 运行界面的例子 分析问题 现在我们分析问题,对使用dtree生成树状列表的程序代码的分析,可以了解程序运行过程如下图所示 在这样的程序中,首先服务器端的C#代码查询数据库,然后根据查询所得数据拼凑出一个J

[ASP.NET MVC]通过对HtmlHelper扩展简化“列表控件”的绑定

在众多表单元素中,有一类<select>元素用于绑定一组预定义列表.传统的ASP.NET Web Form中,它对应着一组重要的控件类型,即ListControl,我们经常用到DropDownList, ListBox.CheckBoxList和RadioButtonList都是其子类.ASP.NET MVC通过对HtmlHelper和HtmlHelper<TModel>的扩展实现了对不同类型的<select>元素的绑定,它们以扩展方法的形式定义在SelectExten

WPF自定义控件与样式(7)-列表控件DataGrid与ListView自定义样式

原文:WPF自定义控件与样式(7)-列表控件DataGrid与ListView自定义样式 一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要内容: DataGrid自定义样式: ListView自定义样式: 二.DataGrid自定义样式 DataGrid是常用的数据列表显示控件,先看看实现的效果(动态图,有点大): DataGrid控件样式结构包括以下几个部分

asp.net 怎么实现多张图片一起上传 有没有什么第三方控件可供使用

问题描述 asp.net 怎么实现多张图片一起上传 有没有什么第三方控件可供使用 asp.net 怎么实现多张图片一起上传 有没有什么第三方控件可供使用 解决方案 http://blog.163.com/tianshenglongchang@126/blog/static/16462850320107724827852/ 解决方案二: swfupload,uploadify,不行你用html5的input file控件,设置multiple就可以同时选择多个文件进行上传 解决方案三: http:

asp.net ajax和asp.net 2.0中的fileupload打造无刷新文件上传控件

在做一个信息管理平台时用到了图片,就像做一个上传的正好用的是asp.net ajax就试着做了一个不很好 自定义用户控件文件 PicUpload.ascx 1<%@ control language="C#" autoeventwireup="true" inherits="Admin_PicUpload, App_Web_mboefw14" %>2 <asp:Image ID="EP_Image" runa