一、编辑,取消,更新操作

首先拖一个ListView控件到页面,然后按如下代码进行调整,这里为了利用ListView控件中按钮的内置功能CommandName必须和我们这里的名字一样

前端代码

<asp:ListView ID="ListView1" runat="server" OnItemEditing="ListView1_ItemEditing"OnItemCanceling="ListView1_ItemCanceling" OnItemUpdating="ListView1_ItemUpdating"><ItemTemplate><tr><td><%#Eval("ID") %></td><td><%#Eval("name") %></td><td><asp:Button ID="EditButton" runat="server" Text="Edit" CommandName="Edit" /></td></tr></ItemTemplate><EditItemTemplate><tr><td><asp:Label ID="IDLable" runat="server" Text='<%#Eval("ID") %>' /></td><td><asp:TextBox ID="NameTextBox" runat="server" Text='<%#Bind("Name") %>' /></td><td><asp:Button ID="UpdateButton" runat="server" CommandName="Update" Text="Update" /><asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="Cancel" /></td></tr></EditItemTemplate><LayoutTemplate><table><tr runat="server" id="itemPlaceholder"></tr></table></LayoutTemplate></asp:ListView>

这里我们在App_Code文件夹中添加DataAccess类来模拟数据提供,代码如下:

模拟数据提供代码

public class DataAccess{public List<Employee> List;public DataAccess(){List = new List<Employee>();Employee e1 = new Employee {ID=1, Name = "lfm1", Age = 30 };Employee e2 = new Employee {ID=2, Name = "lfm2", Age = 30 };Employee e3 = new Employee {ID=3, Name = "lfm3", Age = 30 };Employee e4 = new Employee {ID=4, Name = "lfm4", Age = 30 };Employee e5 = new Employee {ID=5, Name = "lfm5", Age = 30 };Employee e6 = new Employee {ID=6, Name = "lfm6", Age = 30 };List.Add(e1);List.Add(e2);List.Add(e3);List.Add(e4);List.Add(e5);List.Add(e6);}}public class Employee{public int ID { get; set; }public string Name { get; set; }public int Age { get; set; }public int Sex { get; set; }}

页面的后台代码如下:

页面后台代码

public partial class _Default : System.Web.UI.Page{DataAccess da = new DataAccess();protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){Bind();}}private void Bind(){ListView1.DataSource = da.List;ListView1.DataBind();}protected void ListView1_ItemEditing(object sender, ListViewEditEventArgs e){ListView1.EditIndex = e.NewEditIndex;Bind();}protected void ListView1_ItemUpdating(object sender, ListViewUpdateEventArgs e){foreach (var item in da.List){if (item.ID.ToString() == ((Label)ListView1.Items[e.ItemIndex].FindControl("IDLable")).Text){item.Name = ((TextBox)ListView1.Items[e.ItemIndex].FindControl("NameTextBox")).Text;}}ListView1.EditIndex = -1;Bind();}protected void ListView1_ItemCanceling(object sender, ListViewCancelEventArgs e){ListView1.EditIndex = -1;Bind();}}

这里需要注意在Page_Load中绑定时必须判断是否是回发,如果是回发状态则不能重新绑定,因为如果重新绑定则相应的事件不会被触发

二、删除操作

前端代码

前端代码

<asp:ListView ID="ListView1" runat="server" OnItemDeleting="ListView1_ItemDeleting"><ItemTemplate><tr><td><asp:Label ID="IDLable" runat="server" Text='<%#Eval("ID") %>' /></td><td><%#Eval("name") %></td><td><asp:Button ID="EditButton" runat="server" Text="Edit" CommandName="Edit" /></td><td><asp:Button ID="DeleteButton" runat="server" Text="Delete" CommandName="Delete" /></td></tr></ItemTemplate><LayoutTemplate><table><tr runat="server" id="itemPlaceholder"></tr></table></LayoutTemplate></asp:ListView>

因为这里是模拟数据提供,所以数据的状态我们暂且用Session保存,后台代码如下:

后台代码

public partial class _Default : System.Web.UI.Page{DataAccess da;protected void Page_Load(object sender, EventArgs e){if (Session["da"] == null){da = new DataAccess();Session["da"] = da;}else{da = Session["da"] as DataAccess;}if (!IsPostBack){Bind();}}protected void ListView1_ItemDeleting(object sender, ListViewDeleteEventArgs e){foreach (var item in da.List){string currentID = ((Label)ListView1.Items[e.ItemIndex].FindControl("IDLable")).Text;if (item.ID.ToString() == currentID){da.List.Remove(item);break;}}Bind();}}

三、插入操作

ListView的Insert Mode通过其属性InsertItemPosition来控制,该属性的取值有三种:

None:非Insert状态

FirstItem:Insert状态,且编辑模板显示于ListView所有item的最前面

LastItem :Insert状态,且编辑模板显示于ListView所有item的最后面

前端代码:

<asp:ListView ID="ListView1" runat="server" OnItemInserting="ListView1_ItemInserting"><LayoutTemplate><table id="Table1" runat="server" border="0" style=""><tr runat="server" id="itemPlaceholder" /></table></LayoutTemplate><ItemTemplate><tr><td><%#Eval("ID") %></td><td><asp:Label ID="idLabel" runat="server" Text='<%# Eval("name") %>' /></td><td><asp:Label ID="xLabel" runat="server" Text='<%# Eval("age") %>' /></td></tr></ItemTemplate><InsertItemTemplate><tr style=""><td><asp:Button ID="InsertButton" runat="server" CommandName="Insert" Text="插入" /><asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="清除" /></td><td><asp:TextBox ID="IDTextBox" runat="server" /></td><td><asp:TextBox ID="NameTextBox" runat="server" /></td><td><asp:TextBox ID="AgeTextBox" runat="server" /></td></tr></InsertItemTemplate></asp:ListView><asp:Button ID="Button1" runat="server" Text="插入" OnClick="Button1_Click" />

原文出处:吾吾织梦WwW.55ZM.CoM

转载于:https://www.cnblogs.com/feb9903/p/3682011.html

编辑ListView(Edit,Update,Inse相关推荐

  1. ASP.NET MVC 5 - 验证编辑方法(Edit method)和编辑视图(Edit view)

    在本节中,您将验证电影控制器生成的编辑方法(Edit action methods)和视图.但是首先将修改点代码,使得发布日期属性(ReleaseDate)看上去更好.打开Models \ Movie ...

  2. MFC中滚动条slider和编辑框edit的联动

    想在MFC中实现滚动条slider和编辑框edit的联动(改变滚动条,显示数字在编辑框),同时想要添加两个滚动条,分别控制亮度和对比度.参考了几个博客在VS2017中跑不出来.自己写了一个能运行的版本 ...

  3. 如何使用浏览器对网络请求编辑重发(Edit and Resent) 以及: fetch API 中 ReadablleStream 的打印方法

    文章目录 需求 火狐浏览器-编辑重发(Edit and Resent) fetch API Links 需求 上网用F12分析一个请求,调用的事服务端的一个数据接口. 想修改请求参数(请求头.请求体, ...

  4. APS.NET_MVC5学习笔记-验证编辑方法(Edit method)和编辑视图(Edit view)

    在本节中,您将验证电影控制器生成的编辑方法(Edit action methods)和视图.但是首先将修改点代码,使得发布日期属性(ReleaseDate)看上去更好.打开Models \ Movie ...

  5. ListView控件学习系列2-编辑ListView(Edit,Update,Insert,Delete)

    目录: ListView控件学习系列1-了解ListView控件 ListView控件学习系列2-编辑ListView ListView控件学习系列3-ListView选择,排序,分页 ListVie ...

  6. 排球计分程序(八)——验证编辑方法(Edit method)和编辑视图(Edit view)

    修改代码,使得发布ReleaseDate看上去更好.打开Balls \ Ball.cs文件 using System; using System.ComponentModel.DataAnnotati ...

  7. Duilib编辑框Edit输入完自动跳到下一个编辑框

    首先xml文件中设置edit的maxchar参数,默认255好像. <edit maxchar="10" /> 然后在notify函数中加入以下代码 if (msg.s ...

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

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

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

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

  10. 在ASP.NET 3.5中使用新的ListView控件(4)

    正如你所看到的,使用ListView控件显示数据相对要直接得多,但你还可以让用户在ListView中直接编辑数据,添加一个新页面ListViewEditExample.aspx,它的代码如清单2所示. ...

最新文章

  1. springboot整合dubbo_springboot整合dubbo设置全局唯一ID进行日志追踪
  2. 开挂的 00 后!17 岁「天才少女」被 8 所世界名校录取,最终选择 MIT 计算机系...
  3. kibana 更新 索引模式_elasticsearch – 如何在kibana中自动配置索引模式
  4. java 闹钟代码_JAVA可视化闹钟源码
  5. webpack之optimization.runtimeChunk作用
  6. 2016年春季计算机应用基础,东北师范2016年春季《计算机应用基础》期末考核
  7. (转) SpringBoot接入两套kafka集群
  8. 时序图如何表现分支_静态时序分析圣经翻译计划——第五章:延迟计算 (上)...
  9. thinkphp 请求
  10. When we first heard of Linux
  11. python包导入细节_python 如何上传包到pypi
  12. 3.HP服务器iLo安装系统镜像
  13. 毕业设计超市进销存管理系统源码
  14. 解决阿里oss远程图片html2canvas生成海报时跨域问题(附代码)
  15. 怎么样跑步才会消耗掉脂肪而不是肌肉和水分呢
  16. Face Attention Network: An Effective Face Detector for the Occluded Faces
  17. Armijo-Goldstein准则与Wolfe-Powell准则
  18. 大数据分析AI和机器学习在医疗行业的应用
  19. 随记1 MySQL之特殊字符(表情)的存储以及读取乱码问题
  20. linux颜色吸取工具,Pick:Linux下功能强大的拾色器

热门文章

  1. C++ 十进制转换为十六进制 ,十进制转换为二进制,十六进制转换为十进制
  2. selenium实战爬取股票
  3. 【其它】怎样开启Win7快速启动栏
  4. Unity 制作数字图片字体
  5. idou老师带你认识Istio13:Istio实现基础认证策略
  6. MyExcel--Excel操作新方式
  7. 浅谈程序员接私单那点事及接私单需要注意的问题
  8. Chrome浏览器 抢购、秒杀插件,秒杀助手
  9. 只有PHP大牛才能读懂的内涵图
  10. uniapp-路由和navigate跳转