ASP.NET 3.5中的ListView控件和DataPager控件(二)
在ListView中添加和编辑数据
ListView通过EditItemTemplate和InsertItemTemplate来提供编辑数据和添加数据的功能。这个功能的使用非常类似于GridView的编辑特性的使用,只不过它用的都是自定义模板。
<asp:ListView ID="lvItems" runat="server"
DataSourceID="Data"
ItemContainerID="layoutTemplate"
DataKeyNames="Pk"
InsertItemPosition="None"
>
<Layouttemplate>
<div id="layoutTemplate" runat="server" />
</Layouttemplate>
<ItemTemplate>
<div class="itemdisplay">
<b><% # Eval("Sku") %></b><br />
<% # Eval("Abstract") %></div>
<asp:Button ID="Button1" runat="server" CommandName="Edit" Text="Edit" />
<asp:Button ID="Button2" runat="server" CommandName="Delete" Text="Delete" />
</ItemTemplate>
<AlternatingItemTemplate >
<div class="itemdisplayalternate">
<b><% # Eval("Sku") %></b><br />
<% # Eval("Abstract") %></div>
<asp:Button ID="Button1" runat="server" CommandName="Edit" Text="Edit" />
<asp:Button ID="Button2" runat="server" CommandName="Delete" Text="Delete" />
</AlternatingItemTemplate>
<EditItemTemplate>
<div class="gridalternate">
Sku: <asp:TextBox runat="server" ID="txtSku" Text='<%# Bind("Sku") %>'></asp:TextBox>
<br />
Abstract: <asp:TextBox runat="server" id="txtAbstract" Text='<%# Bind("Abstract") %>'></asp:TextBox>
<br />
<asp:Button ID="Button3" runat="server" CommandName="Update" Text="Update" />
<asp:Button ID="Button4" runat="server"
CommandName="Cancel" Text="Cancel" /><br />
</div>
</EditItemTemplate>
<InsertItemTemplate>
<div style="background:Yellow">
<asp:TextBox runat="server" ID="txtSku" Text='<%# Bind("Sku") %>'></asp:TextBox>
<br />
<asp:TextBox runat="server" id="txtAbstract" Text='<%# Bind("Abstract") %>'></asp:TextBox>
<br />
</div>
<asp:Button ID="Button3" runat="server" CommandName="Inser" Text="Insert" />
<asp:Button ID="Button4" runat="server"
CommandName="Cancel" Text="Cancel" /><br />
</InsertItemTemplate>
</asp:ListView>
在本例中我使用的是SqlDataSource(我比较懒),SqlDataSource中的Insert和Update语句是你必须要提供的。 InsertItemTemplate是ListView中新增的非常受欢迎的模板,我们可以把它的UI设置成与编辑模板相一致。我们还可以通过InsertItemPosition属性来指定插入模板的位置,它可以是FirstItem、LastItem或None。一般来说,应该把它设置为None,然后通过某个按钮来设置插入模板的显示位置(FirstItem或LastItem)。示例代码如下:
protected void btnAddItem_Click(object sender, EventArgs e)
{
this.lvItems.InsertItemPosition = InsertItemPosition.FirstItem;
}
protected void lvItems_ItemCommand(object sender, ListViewCommandEventArgs e)
{
if (e.CommandName == "Update")
{
TextBox tb = e.Item.FindControl("txtSku") as TextBox;
this.lvItems.InsertItemPosition = InsertItemPosition.None;
Response.Write(tb.Text);
}
if (e.CommandName == "Cancel")
{
this.lvItems.InsertItemPosition = InsertItemPosition.None;
}
}
你可以在OnItemCommand中写上自己的逻辑,使得一旦执行了Update或Cancel命令就设置InsertItemPosition为None。
分组
大概介绍一下,最后生成的HTML代码会先用GroupTemplate分组,然后再以LayoutTemplate做容器包裹起来。
<Layouttemplate>
<div id="groupContainer" runat="server" >
</div>
</Layouttemplate>
<GroupTemplate>
<div class="blockheader" style="height:23px;padding:7px">Group Header:</div>
<div id="layoutTemplate" runat="server" />
</GroupTemplate>
你可以设置ListView的GroupItemCount属性,来指定每组显示多少条记录。
总结
ListView 是ASP.NET中新增的一个非常酷的控件。 在本文中我已经介绍过了,相对于GridView来说它有着更为丰富的布局手段,你可以在它的模板内写任何HTML标记或者控件。如果你使用过Repeater和GridView的话,那么你将会轻松的上手ListView,不过很明显地,你也将要手写更多的HTML标记。 但是,它也将会给我们带来更多的布局上的自由度,同时也具有编辑、插入等特性。这就是ASP.NET 3.5给我们带来的非常棒的控件。
ASP.NET 3.5中的ListView控件和DataPager控件(二)相关推荐
- ASP.NET 3.5中的ListView控件和DataPager控件(一)
介绍 今天,我花了几个小时的时间研究了一下ASP.NET 3.5中的ListView控件和DataPager控件. 这两个控件是ASP.NET中新增的.非常受欢迎的控件. ListView控件集成了D ...
- 【转贴】ASP.NET 3.5中的ListView控件和DataPager控件
作者:Rick Strahl 翻译:webabcd 原文地址:http://www.west-wind.com/WebLog/posts/127340.aspx 译文地址:http://www.cn ...
- 在.net3.5中使用ListView控件和DataPager控件笔记
演练:使用 ListView Web 服务器控件修改数据 演练:使用 ListView Web 服务器控件对数据进行显示.分页和排序 DataPager 控件 注意DataPager控件只能和List ...
- 【初学者指南】在ASP.NET MVC 5中创建GridView
介绍 在这篇文章中,我们将会学习如何在 ASP.NET MVC 中创建一个 gridview,就像 ASP.NET Web 表单中的 gridview 一样.服务器端和客户端有许多可用的第三方库,这些 ...
- ASP.NET 2.0中使用自定义provider (2)
ASP.NET 2.0中使用自定义provider (2) 在tech ed 2005上,有对asp.net 2.0的介绍,其中讲到asp.net 2.0提供了很多功能,让程序员做少很多东西,这引起了 ...
- 【转】 ASP.NET 3.5中使用新的ListView控件
ASP.NET中新的ListView控件为显示和CURD数据库操作提供了基于模板的布局,使之成为一项极好的方式,建立以数据为中心的Web应用程序. 当你编写以用户为中心的应用程序时,总需要某种形式的数 ...
- 在ASP.NET 3.5中使用新的ListView控件(3)
在清单1中,SqlDataSource通过设置ConnectionString 和SelectCommand 属性控制从AdventureWorks数据库的Product表中检索数据,Connecti ...
- 在ASP.NET 3.5中使用新的ListView控件(6)
值 描述 Cancel 取消当前操作 Delete 从数据源删除当前选中的项目 Edit 切换ListView到编辑模式,显示EditItemTemplate组件中指定的内容 Insert 作为一条新 ...
- [翻译]Scott Mitchell 的ASP.NET 2.0数据教程之十三:在DetailsView控件中使用TemplateField...
导言 比起BoundField.CheckBoxField.HyperLinkField以及其他的那些数据字段控件(data field controls)来说,TemplateField提供了一种高 ...
最新文章
- 准确率99.9%!如何用深度学习最快找出放倒的那张X光胸片(代码+数据)
- 给大忙人看的Java核心技术笔记(8、Stream)
- .net 数字转汉字_[原创工具] 小熊汉字笔顺学习软件,查笔顺、学拼音、制作汉字英文数字字贴...
- 【转】如何让ucgui支持24位色(24bpp)
- linux系统解锁用户百度,详细到没朋友,一文帮你理清Linux 用户与用户组关系~
- 微课|中学生可以这样学Python(例6.3):猜数游戏
- Vue指令_常用vue指令_自定义全局指令_自定义局部指令---vue工作笔记0016
- python爬虫练习--爬取猫眼top100电影信息
- Opencv+Moviepy实现涂鸦视频和视频音轨分离合并操作。
- 系列1—BabeLua入门
- QQ坦白说抓包破解与PacketCapture使用介绍
- Leetcode 每日一题——845. 数组中的最长山脉
- 等保测评机构推荐证书撤销,纳入国家认证体系
- 末日的传说 洛谷p1338
- php仿淘宝课程设计任务书
- vim 基本够用的操作命令
- redmi airdots手动串联_【更正】关于小米AirDots青春版和Redmi红米AirDots所支持蓝牙协议内容的更正...
- 视频融合应用没听说过?
- 如何在配置低的老旧笔记本的win7系统上安装tensorflow及报错信息解决方法集锦
- 戴尔微型计算机进bois,dell进bios按什么键 戴尔进bios的方法