在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控件(二)相关推荐

  1. ASP.NET 3.5中的ListView控件和DataPager控件(一)

    介绍 今天,我花了几个小时的时间研究了一下ASP.NET 3.5中的ListView控件和DataPager控件. 这两个控件是ASP.NET中新增的.非常受欢迎的控件. ListView控件集成了D ...

  2. 【转贴】ASP.NET 3.5中的ListView控件和DataPager控件

    作者:Rick Strahl  翻译:webabcd 原文地址:http://www.west-wind.com/WebLog/posts/127340.aspx 译文地址:http://www.cn ...

  3. 在.net3.5中使用ListView控件和DataPager控件笔记

    演练:使用 ListView Web 服务器控件修改数据 演练:使用 ListView Web 服务器控件对数据进行显示.分页和排序 DataPager 控件 注意DataPager控件只能和List ...

  4. 【初学者指南】在ASP.NET MVC 5中创建GridView

    介绍 在这篇文章中,我们将会学习如何在 ASP.NET MVC 中创建一个 gridview,就像 ASP.NET Web 表单中的 gridview 一样.服务器端和客户端有许多可用的第三方库,这些 ...

  5. ASP.NET 2.0中使用自定义provider (2)

    ASP.NET 2.0中使用自定义provider (2) 在tech ed 2005上,有对asp.net 2.0的介绍,其中讲到asp.net 2.0提供了很多功能,让程序员做少很多东西,这引起了 ...

  6. 【转】 ASP.NET 3.5中使用新的ListView控件

    ASP.NET中新的ListView控件为显示和CURD数据库操作提供了基于模板的布局,使之成为一项极好的方式,建立以数据为中心的Web应用程序. 当你编写以用户为中心的应用程序时,总需要某种形式的数 ...

  7. 在ASP.NET 3.5中使用新的ListView控件(3)

    在清单1中,SqlDataSource通过设置ConnectionString 和SelectCommand 属性控制从AdventureWorks数据库的Product表中检索数据,Connecti ...

  8. 在ASP.NET 3.5中使用新的ListView控件(6)

    值 描述 Cancel 取消当前操作 Delete 从数据源删除当前选中的项目 Edit 切换ListView到编辑模式,显示EditItemTemplate组件中指定的内容 Insert 作为一条新 ...

  9. [翻译]Scott Mitchell 的ASP.NET 2.0数据教程之十三:在DetailsView控件中使用TemplateField...

    导言 比起BoundField.CheckBoxField.HyperLinkField以及其他的那些数据字段控件(data field controls)来说,TemplateField提供了一种高 ...

最新文章

  1. 准确率99.9%!如何用深度学习最快找出放倒的那张X光胸片(代码+数据)
  2. 给大忙人看的Java核心技术笔记(8、Stream)
  3. .net 数字转汉字_[原创工具] 小熊汉字笔顺学习软件,查笔顺、学拼音、制作汉字英文数字字贴...
  4. 【转】如何让ucgui支持24位色(24bpp)
  5. linux系统解锁用户百度,详细到没朋友,一文帮你理清Linux 用户与用户组关系~
  6. 微课|中学生可以这样学Python(例6.3):猜数游戏
  7. Vue指令_常用vue指令_自定义全局指令_自定义局部指令---vue工作笔记0016
  8. python爬虫练习--爬取猫眼top100电影信息
  9. Opencv+Moviepy实现涂鸦视频和视频音轨分离合并操作。
  10. 系列1—BabeLua入门
  11. QQ坦白说抓包破解与PacketCapture使用介绍
  12. Leetcode 每日一题——845. 数组中的最长山脉
  13. 等保测评机构推荐证书撤销,纳入国家认证体系
  14. 末日的传说 洛谷p1338
  15. php仿淘宝课程设计任务书
  16. vim 基本够用的操作命令
  17. redmi airdots手动串联_【更正】关于小米AirDots青春版和Redmi红米AirDots所支持蓝牙协议内容的更正...
  18. 视频融合应用没听说过?
  19. 如何在配置低的老旧笔记本的win7系统上安装tensorflow及报错信息解决方法集锦
  20. 戴尔微型计算机进bois,dell进bios按什么键 戴尔进bios的方法

热门文章

  1. java的URLConnection
  2. Objective-C中变量采用@property的各个属性值的含义
  3. 利用优先级队列实现堆栈
  4. TypeScript Never 与 Unknown
  5. OSPF——多区域概念及配置、ABR简介、ASBR简介、路由重分发
  6. npm切换淘宝源,yarn切换淘宝源
  7. C# web项目中sql数据库转sqlite数据库
  8. 三范式理解 数据库原理
  9. GIT关联本地仓库与远端仓库
  10. 【Python爬虫】Beautiful Soup库入门