作者:lksxq_468 | 来源:互联网 | 2023-09-02 14:29
【转贴】ListView控件学习系列1-了解ListView控件作者:方明原贴地址:http:www.cnblogs.comnuaalfmarchive2008090112816
【转贴】ListView控件学习系列1-了解ListView控件
作者:方明
原贴地址:http://www.cnblogs.com/nuaalfm/archive/2008/09/01/1281646.html
目录:
ListView控件学习系列1-了解ListView控件
ListView控件学习系列2-编辑ListView
ListView控件学习系列3-ListView选择,排序,分页
ListView使用技巧
源码下载
当你编写以用户为中心的应用程序时,总需要某种形式的数据集,起码来说,你需要从一个数据源如关系数据库或XML文件检索数据,在显示给用户之前先要进行格式化,尽管ASP.NET之前的版本就提供了以数据为中心的显示控件如GridView,但 GridView的输出仍然是限制在一个table组件中的,而且这些控件缺乏专业Web开发人员需要的可自定义和可扩展特性,有时候你想要完全控制由数据绑定控件产生的HTML标记的外观,这正是ListView控件的优势,ListView控件不是使用额外的标记来封装它的输出内容,而是靠你指定的精确的HTML描述,使用ListView控件内置的模板就可以指定精确的标记,它提供了非常优秀的自定义和扩展特性,使用这些特性,你可以以任何格式显示数据,使用模板和样式,同时用最少的代码执行CURD(创建、读取、更新、删除)操作。
我们先看一下ListView支持的模板
模板 |
用途 |
AlternatingItemTemplate 交替项目模板 |
用不同的标记显示交替的项目,便于查看者区别连续不断的项目 |
EditItemTemplate 编辑项目模板 |
控制编辑时的项目显示 |
EmptyDataTemplate 空数据模板 |
控制ListView数据源返回空数据时的显示 |
EmptyItemTemplate 空项目模板 |
控制空项目的显示 |
GroupSeparatorTemplate 组分隔模板 |
控制项目组内容的显示 |
GroupTemplate 组模板 |
为内容指定一个容器对象,如一个表行、div或span组件 |
InsertItemTemplate 插入项目模板 |
用户插入项目时为其指定内容 |
ItemSeparatorTemplate 项目分隔模板 |
控制项目之间内容的显示 |
ItemTemplate 项目模板 |
控制项目内容的显示 |
LayoutTemplate 布局模板 |
指定定义容器对象的根组件,如一个table、div或span组件,它们包装ItemTemplate或GroupTemplate定义的内容。 |
SelectedItemTemplate 已选择项目模板 |
指定当前选中的项目内容的显示 |
最关键的两个模板是LayoutTemplate和ItemTemplate,正如名字暗示的那样,LayoutTemplate为ListView控件指定了总的标记,而ItemTemplate指定的标记用于显示每个绑定的记录
一、LayoutTemplate和ItemTemplate模板
标识定义控件的主要布局的根模板。它包含一个占位符对象,例如表行 (tr)、div 或 span 元素。此元素将由 ItemTemplate 模板或 GroupTemplate 模板中定义的内容替换。使用 LayoutTemplate 属性可以为 ListView 控件的根容器定义自定义用户界面 (UI)。LayoutTemplate 模板是 ListView 控件所必需的。LayoutTemplate 内容必须包含一个占位符控件,例如由 ItemTemplate 模板定义的项表行 (tr) 元素。占位符控件必须将 runat 属性 (Attribute) 设置为“server”,将 ID 属性 (Attribute) 设置为 ItemPlaceholderID 或 GroupPlaceholderID 属性 (Property) 的值(具体取决于 ListView 控件是否使用组)。
例如:
前端代码:
ListView演示前端代码
<asp:ListView ID="ListView1" runat="server">
<ItemTemplate>
<tr>
<td runat="server" style="">
<asp:Label ID="idLabel" runat="server" Text='<%# Eval("name") %>' />
<br />
td>
<td>
<asp:Label ID="xLabel" runat="server" Text='<%# Eval("Age") %>' />
<br />
td>
tr>
ItemTemplate>
<LayoutTemplate>
<table runat="server" border="0" style="">
<tr runat="server" id="itemPlaceholder" />
table>
LayoutTemplate>
asp:ListView>
后台代码:
ListView演示后台代码
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Employee e1 = new Employee { Name = "lfm1", Age = 30 };
Employee e2 = new Employee { Name = "lfm2", Age = 30 };
Employee e3 = new Employee { Name = "lfm3", Age = 30};
Employee e4 = new Employee { Name = "lfm4", Age = 30};
Employee e5 = new Employee { Name = "lfm5", Age = 30};
Employee e6 = new Employee { Name = "lfm6", Age = 30 };
Employee[] employees = { e1,e2,e3,e4,e5,e6};
ListView1.DataSource = employees;
ListView1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
}
}
class Employee
{
public string Name { get; set; }
public int Age { get; set; }
public int Sex { get; set; }
}
浏览器中得到的代码为:
浏览器中显示的代码
<table border="0" style="">
<tr>
<td style="">
<span id="ListView1_ctrl0_idLabel">lfm1span>
<br />
td>
<td>
<span id="ListView1_ctrl0_xLabel">30span>
<br />
td>
tr>
<tr>
<td style="">
var cpro_id = "u6885494";
推荐阅读
-
本文详细介绍了Oracle 11g中的创建表空间的方法,以及如何设置客户端和服务端的基本配置,包括用户管理、环境变量配置等。 ...
[详细]
蜡笔小新 2024-11-21 18:54:39
-
本文探讨了在SQL Server中处理几何类型列时遇到的INTERSECT操作限制,并提供了解决方案,包括通过转换数据类型和使用额外表结构的方法。 ...
[详细]
蜡笔小新 2024-11-20 20:09:58
-
-
本文将深入探讨 Unreal Engine 4 (UE4) 中的距离场技术,包括其原理、实现细节以及在渲染中的应用。距离场技术在现代游戏引擎中用于提高光照和阴影的效果,尤其是在处理复杂几何形状时。文章将结合具体代码示例,帮助读者更好地理解和应用这一技术。 ...
[详细]
蜡笔小新 2024-11-19 18:21:03
-
本文详细介绍了如何使用JavaScript将用户通过文件输入控件选择的图片文件转换为Base64编码字符串,适用于Web前端开发中图片上传前的预处理。 ...
[详细]
蜡笔小新 2024-11-19 12:43:15
-
mysql数据库json类型数据,sql server json数据类型 ...
[详细]
蜡笔小新 2024-11-19 11:05:28
-
本文介绍如何通过继承TabActivity来创建Android应用中的顶部选项卡。通过简单的步骤,您可以轻松地添加多个选项卡,并实现基本的界面切换功能。 ...
[详细]
蜡笔小新 2024-11-21 17:47:42
-
publicclassBindActionextendsActionSupport{privateStringproString;privateStringcitString; ...
[详细]
蜡笔小新 2024-11-21 16:25:41
-
本文详细介绍了JQuery Mobile框架中特有的事件和方法,帮助开发者更好地理解和应用这些特性,提升移动Web开发的效率。 ...
[详细]
蜡笔小新 2024-11-21 14:24:21
-
Web动态服务器Python基本实现 ...
[详细]
蜡笔小新 2024-11-21 08:01:30
-
本文探讨了如何通过Service Locator模式来简化和优化在B/S架构中的服务命名访问,特别是对于需要频繁访问的服务,如JNDI和XMLNS。该模式通过缓存机制减少了重复查找的成本,并提供了对多种服务的统一访问接口。 ...
[详细]
蜡笔小新 2024-11-20 19:26:30
-
本文详细介绍了如何利用 Bootstrap Table 实现数据展示与操作,包括数据加载、表格配置及前后端交互等关键步骤。 ...
[详细]
蜡笔小新 2024-11-20 17:21:26
-
MySQLoptionallylogsslowqueriesintotheSlowQueryLog–orjustSlowLog,asfriendscallit.However,Thereareseveralreasonstologallqueries.Thislistisnotexhaustive:Belowyoucanfindthevariablestochange,astheyshouldbewritteninth ...
[详细]
蜡笔小新 2024-11-20 12:50:01
-
原文地址:https:blog.csdn.netqq_35361471articledetails84715491原文地址:https:blog.cs ...
[详细]
蜡笔小新 2024-11-19 19:22:47
-
本文介绍了一个使用Spring框架和Quartz调度器实现每周定时调用Web服务获取数据的小项目。通过详细配置Spring XML文件,展示了如何设置定时任务以及解决可能遇到的自动注入问题。 ...
[详细]
蜡笔小新 2024-11-19 19:14:50
-
本文详细介绍如何在微信小程序中实现一个动态且可视化的电影选座组件,提高用户体验。通过合理的布局和交互设计,使用户能够轻松选择心仪的座位。 ...
[详细]
蜡笔小新 2024-11-19 15:36:11
-