首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
hashtable
express
web3
client
js
cookie
uri
settings
tags
email
require
vbscript
scala
expression
数组
go
cmd
cPlusPlus
lua
vba
command
text
shell
replace
install
subset
select
emoji
erlang
sum
case
perl
match
ascii
copy
grid
python3
split
range
runtime
plugins
cpython
blob
search
input
timezone
regex
netty
iostream
string
list
format
hashset
object
join
jsp
httpclient
bytecode
php5
c语言
post
flutter
main
tree
dagger
python
loops
buffer
header
triggers
foreach
config
httprequest
include
javascript
bitmap
integer
byte
schema
当前位置:
开发笔记
>
编程语言
> 正文
第六篇续:动态创建ListView模板
作者:讨厌上学的-彭志超-_354 | 来源:互联网 | 2023-07-08 10:49
本系列目录想必大家已经喜欢上了ListView的布局方式,在LayoutTemplate中定义展现方式,在其它模板中定义数据绑定,使得我们设计数据表现页更简单了。不过我最近在想一个问题,如果
本系列目录
想必大家已经喜欢上了ListView的布局方式,在
LayoutTemplate中定义展现方式,在其它模板中定义数据绑定,使得我们设计数据表现页更简单了。
不过我最近在想一个问题,如果listview中要显示的列并非固定的,或者我们要在其中实现列的重新排列该怎么办呢?本篇文章将要讲述如何动态的为listview创建模板。
首先是第一种简单方式
this.ListView1.LayoutTemplate = this.LoadTemplate("MyTemplate.ascx");这是最简单的一种方式,但是相对的灵活性也不足,他只能是为我们的listview提供可预知的集中模板。并不能在用户操作的时候实现改变。那么该怎么办呢?
若要创建动态模板,就要先创建模板类,然后在需要时实例化该类。
创建实现ITemplate接口的新类,并实现接口的InstantiateIn方法。
该方法提供将文本实例或控件实例插入容器的方法。
我们以LayoutTemplate为例
public
class
MyLayoutTemplate : System.Web.UI.ITemplate
{
public
void
InstantiateIn(System.Web.UI.Control container)
{
PlaceHolder ph
=
new
PlaceHolder();
Table t
=
new
Table();
TableRow r
=
new
TableRow();
r.Cells.Add(
new
TableCell()
{ Text
=
"
Title1
"
}
);
r.Cells.Add(
new
TableCell()
{ Text
=
"
Title2
"
}
);
r.Cells.Add(
new
TableCell()
{ Text
=
"
Title3
"
}
);
t.Rows.Add(r);
TableRow itemPlaceholderRow
=
new
TableRow();
Table itemPlaceholderTable
=
new
Table();
itemPlaceholderTable.ID
=
"
itemPlaceholder
"
;
itemPlaceholderRow.Cells.Add(
new
TableCell());
itemPlaceholderRow.Cells[
0
].Controls.Add(itemPlaceholderTable);
t.Rows.Add(itemPlaceholderRow);
ph.Controls.Add(t);
container.Controls.Add(ph);
}
}
然后我们只需要创建这个类的实例并将其赋给LayoutTemplate属性就OK了。
MyLayoutTemplate myLayoutTemplate
=
new
MyLayoutTemplate();
this
.ListView1.LayoutTemplate
=
myLayoutTemplate;
下面我们创建
ItemTemplate
,在这里我们还要额外多处理下DataBinding事件。
结果代码如下
public
class
MyItemTemplate : System.Web.UI.ITemplate
{
public
void
InstantiateIn(System.Web.UI.Control container)
{
PlaceHolder ph
=
new
PlaceHolder();
TableRow row
=
new
TableRow();
row.Cells.Add(
new
TableCell()
{ ID
=
"
cell1
"
}
);
row.Cells.Add(
new
TableCell()
{ ID
=
"
cell2
"
}
);
ph.Controls.Add(row);
ph.DataBinding
+=
new
EventHandler(ph_DataBinding);
container.Controls.Add(ph);
}
void
ph_DataBinding(
object
sender, EventArgs e)
{
PlaceHolder ph
=
(PlaceHolder)sender;
IDataItemContainer ri
=
(IDataItemContainer)ph.NamingContainer;
object
itemValue1
=
DataBinder.Eval(ri.DataItem,
"
字段1
"
);
((TableCell)ph.FindControl(
"
cell1
"
)).Text
=
itemValue1.ToString();
object
itemValue2
=
DataBinder.Eval(ri.DataItem,
"
字段2
"
);
((TableCell)ph.FindControl(
"
cell2
"
)).Text
=
itemValue2.ToString();
}
}
同样的,使用
this.ListView1.ItemTemplate =
new MyItemTemplate()
;完成ItemTemplate的编辑。
如果你愿意多花点时间,您肯定可以举一反三的搞定其它类型的模板。
(转载请注明出处)
asp.net
list
listview
view
layout
容器
web
text
object
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
text
listView每个item里面放webView的问题
如题在ListView每个item的布局里面都有一个webView来加载内容因为内容含有文字和图片,但是很加载很慢,求大神帮忙解决 ...
[详细]
蜡笔小新 2023-10-11 02:07:15
select
使用Tkinter构建51Ape无损音乐爬虫UI
本文介绍了如何使用Python的内置模块Tkinter来构建一个简单的用户界面,用于爬取51Ape网站上的无损音乐百度云链接。虽然Tkinter入门相对简单,但在实际开发过程中由于文档不足可能会带来一些不便。 ...
[详细]
蜡笔小新 2024-11-15 10:31:11
text
深入解析SpringMVC中的HandlerMapping机制
本文将从基础概念入手,详细探讨SpringMVC框架中DispatcherServlet如何通过HandlerMapping进行请求分发,以及其背后的源码实现细节。 ...
[详细]
蜡笔小新 2024-11-20 19:24:42
select
怎么在asp.net中获取ListView与gridview中当前行的行号
这期内容当中小编将会给大家带来有关怎么在asp.net中获取ListView与gridview中当前行的行号,文章内容丰富且以专业的角度为大家分析和叙述, ...
[详细]
蜡笔小新 2023-09-15 13:41:36
text
listview传值到另外Activity
现在做了一个ListView,里面的值是用cursor提取数据库的,现在想点击listview以后页面进行跳转,并且在新的activity里显示被点击的listview的数据,我的listview有很 ...
[详细]
蜡笔小新 2023-09-10 17:00:04
text
使用Service Locator模式实现高效的服务命名访问
本文探讨了如何通过Service Locator模式来简化和优化在B/S架构中的服务命名访问,特别是对于需要频繁访问的服务,如JNDI和XMLNS。该模式通过缓存机制减少了重复查找的成本,并提供了对多种服务的统一访问接口。 ...
[详细]
蜡笔小新 2024-11-20 19:26:30
go
Flutter 核心技术与混合开发模式深入解析
本文深入探讨了 Flutter 的核心技术,特别是其混合开发模式,包括统一管理模式和三端分离模式,以及混合栈原理。通过对比不同模式的优缺点,帮助开发者选择最适合项目的混合开发策略。 ...
[详细]
蜡笔小新 2024-11-19 13:48:51
select
如何在Visual C#中使用ListView控件来展示数据记录
如果要你在程序中显示数据库中的数据记录,你首先想用的显示工具肯定是DataGrid。当然用DataGrid显示数据记录是一种既常用又简单的方法。但是在程序控制方面,它却无法那么随心所欲。本文就是介绍另 ...
[详细]
蜡笔小新 2023-10-13 16:20:24
select
避免在从BackgroundWorker添加的ListView中重复
我在Winform上有一个ListView,可以将文件拖放到该列表上。这些文件随后由我的 ...
[详细]
蜡笔小新 2023-10-12 11:34:00
select
C# ListView用法详解 很完整
一、ListView类1、常用的基本属性:(1)FullRowSelect:设置是否行选择模式。(默认为false)提示 ...
[详细]
蜡笔小新 2023-10-09 18:49:28
select
android ListView 示例3 使用 ListActivity 创建 ListView
如果程序的窗口仅仅需要显示一个列表,则可以直接让Activity集成ListActivity来实现,ListActivity的子类无须调用setContentView方法来显示某个 ...
[详细]
蜡笔小新 2023-09-24 11:12:13
select
关于改变ListView选中项的状态方法
关于改变ListView选中项的状态方法思路:无论使用哪一个适配器,只需要重写他的getView()方法即可原理:getView方法是用于把创建好的view交给listView用的,所以我们可 ...
[详细]
蜡笔小新 2023-09-24 07:47:11
shell
jQM note:开发工具的选择
不知道其他的开发人员是否和我一样,在学习一些新的技术时,有对于开发工具的迷茫。这是一个节奏无比快的时代,对于学习周期,除了一门全新的技术或是深奥的研究,都不能太长。就如phpdevshell,在有一定 ...
[详细]
蜡笔小新 2023-09-16 17:37:46
text
ListView学习2--使用ListView做上下翻页
ListView想要做到上下翻页的效果需要使用如下参数positionViewAtIndex(intindex,PositionModemode)P ...
[详细]
蜡笔小新 2023-09-16 12:33:49
sum
【Android开发】 ListView使用实战详解,你get到了嘛?
【Android开发】ListView使用实战详解,你get到了嘛?-目录一、什么是ListView?二、ListView的简单用法三、ListView点击响应事件hel ...
[详细]
蜡笔小新 2023-09-13 13:08:01
讨厌上学的-彭志超-_354
这个家伙很懒,什么也没留下!
Tags | 热门标签
hashtable
express
web3
client
js
cookie
uri
settings
tags
email
require
vbscript
scala
expression
数组
go
cmd
cPlusPlus
lua
vba
command
text
shell
replace
install
subset
select
emoji
erlang
sum
RankList | 热门文章
1
【Python】关于Win32后台,鼠标移动,坐标偏移问题解决方法
2
flask0.1版本源码浅析——Request
3
Asp.net状态管理(一)
4
DDS信号发生器设计
5
万恶之源 02 运算符和编码
6
【机器学习】多项式回归的思想以及在sklearn中使用多项式回归(含示例+代码)
7
《华胥引》翻译 原文赏析诗人宋方千里
8
3.8 Python bytes类型及用法
9
mysql插入多条数据时间复杂度比较
10
应用程序一运行就崩溃,且每次崩溃的位置都不一样
11
IOT安全
12
EasyClick 原生UI ViewPager组件
13
Check that devicemapper is available in the kernel
14
Android基础线程的多种状态
15
开发笔记:Python并发编程(线程)
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有