1.刚开始在第一部分显示数据的时候出现如下错误:

修改:

@Page 中的EnableEventValidation="false"

2.点击各个按钮没有反应。

修改:为page_load事件加判断是否回发。if (!Page.IsPostBack)

3.ItemPlaceholderID和<asp:PlaceHolder ID="Layout" runat="server"></asp:PlaceHolder>

3. ListViewInsertEventArgs e    中可以通过 var temp = e.Values;可以通过键值来得到value的值。

源代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="NX.Manage.WebForm1" EnableEventValidation="false" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:listview ID="ListView1" runat="server" ItemPlaceholderID="Layout"
onitemcommand="ListView1_ItemCommand"
oniteminserting="ListView1_ItemInserting"
onitemupdating="ListView1_ItemUpdating" DataKeyNames="Value"
onitemediting="ListView1_ItemEditing">
<LayoutTemplate>
<ul>
<asp:PlaceHolder ID="Layout" runat="server"></asp:PlaceHolder>
</ul>
</LayoutTemplate>
<ItemTemplate>
<li><%# Eval("Name") %> (#<%# Eval("Value") %>)</li><asp:Button runat="server" ID="Create" CommandName="Create" Text="New" />
<asp:Button runat="server" ID="Edit" CommandName="Edit" Text="Edit" />
</ItemTemplate>
<EmptyDataTemplate>
<asp:Button runat="server" ID="Create" CommandName="Create" Text="New" />
</EmptyDataTemplate>
<InsertItemTemplate>
<li>Name: <asp:TextBox runat="server" ID="NewName" Text='<%# Bind("Name") %>' /><br />
Value: <asp:TextBox runat="server" ID="NewValue" Text='<%# Bind("Value") %>' />
<asp:Button runat="server" ID="Insert" Text="Save" CommandName="Insert" /> </li><br />
</InsertItemTemplate>
<EditItemTemplate>
<li>Name: <asp:TextBox runat="server" ID="Name" Text='<%# Bind("Name") %>' />
Value: <asp:TextBox runat="server" ID="Value" Text='<%# Bind("Value") %>' /> <br />
<asp:Button runat="server" ID="Update" Text="Save" CommandName="Update" />
</li>
</EditItemTemplate>
</asp:listview>
</div>
</form>
</body>
</html>

后台代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; namespace NX.Manage
{
public partial class WebForm1 : System.Web.UI.Page
{
static readonly string SESSION_KEY = "_sk_dataentry_";
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ListView1.DataSource = Data;
ListView1.DataBind();
}
}
protected List<DataEntry> Data
{
get
{
List<DataEntry> data = Session[SESSION_KEY] as List<DataEntry>;
if (data == null)
{
data = new List<DataEntry>();
data.Add(new DataEntry { Name = "James", Value = });
data.Add(new DataEntry { Name = "Ash", Value = });
data.Add(new DataEntry { Name = "Lulu", Value = });
ViewState[SESSION_KEY] = data;
} return data;
}
set { Session[SESSION_KEY] = value; }
} protected void ListView1_ItemCommand(object sender, ListViewCommandEventArgs e)
{
if (e.CommandName == "Create")
{
ListView1.InsertItemPosition = InsertItemPosition.LastItem;
BindData();
}
} private void BindData()
{
ListView1.DataSource = Data;
ListView1.DataBind();
} protected void ListView1_ItemInserting(object sender, ListViewInsertEventArgs e)
{
var temp = e.Values;
ListViewItem item = e.Item;
try
{
string name = (item.FindControl("NewName") as TextBox).Text;
int value = int.Parse((item.FindControl("NewValue") as TextBox).Text);
List<DataEntry> data = Data;
data.Add(new DataEntry { Name = name, Value = value });
Data = data; ListView1.InsertItemPosition = InsertItemPosition.None; BindData();
}
catch { }
} protected void ListView1_ItemUpdating(object sender, ListViewUpdateEventArgs e)
{
var c= e.OldValues;
var f= e.NewValues;
int value = int.Parse(ListView1.DataKeys[e.ItemIndex].Value.ToString());
List<DataEntry> data = Data;
DataEntry entry = data.Single(d => d.Value == value);
entry.Name = (ListView1.Items[e.ItemIndex].FindControl("Name") as TextBox).Text;
entry.Value = int.Parse((ListView1.Items[e.ItemIndex].FindControl("Value") as TextBox).Text);
Data = data;
ListView1.EditIndex = -;
BindData(); } protected void ListView1_ItemEditing(object sender, ListViewEditEventArgs e)
{
ListView1.EditIndex = e.NewEditIndex;
BindData();
} }
[Serializable]
public class DataEntry
{
public string Name { get; set; }
public int Value { get; set; } }
}

ListView控件的Insert、Edit和Delete功能第三部分(自我总结)的更多相关文章

  1. C# winform项目中ListView控件使用CheckBoxes属性实现单选功能

    C# winform项目中ListView控件使用CheckBoxes属性实现单选功能 在做项目时需要使用ListView控件的CheckBoxes属性显示,还要在点击行时自动选中CheckBoxes ...

  2. ListView控件的Insert、Edit和Delete功能(第二部分)

    本系列文章将通过一个简单的实例,结合我自己使用ListView的情况,展示如何用ASP.NET 3.5 ListView控件进行基本的Insert.Edit和Delete操作. 系统要求: Windo ...

  3. ListView控件的Insert、Edit和Delete功能(第一部分)

    摘自:http://blog.ashchan.com/archive/2007/08/28/listview-control-insert-edit-amp-delete-part-1aspx/ Li ...

  4. Windows程序==>>使用ListView控件展示数据

    使用ListView控件展示数据 01.ImageList控件 1.了解了解         属性 说明 Images 储存在图像列表中的所有图像 ImageSize 图像列表中图像的大小 Trans ...

  5. listview控件专题

    listview控件加CheckBox 窗口load: listViewLayersName.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderS ...

  6. 《ASP.NET1200例》ListView 控件与DataPager控件的结合<一>

    分页     在前一部分开始时介绍的原 HTML 设计中内含分页和排序,所以根据规范完整实现该网格的任务尚未完成.我们先分页,然后再排序. ListView 控件中的分页通过引入另一个新控件 Data ...

  7. 《ASP.NET1200例》ListView控件之修改,删除与添加

    aspx <body> <form id="form1" runat="server"> <div> <asp:Lis ...

  8. 《ASP.NET1200例》ListView 控件与DataPager控件的结合<二>

    ASP.NET使用ListView数据绑定控件和DataPager实现数据分页显示 为什么使用ListView+DataPager的方式实现分页显示? .net提供的诸多数据绑定控件,每一种都有它自己 ...

  9. SQLite数据库、ListView控件的使用

    android下数据库的创建(重点) 在Android平台上,集成了一个轻量级嵌入式关系型数据库—SQLite,SQLite3支持 NULL.INTEGER.REAL(浮点数字).TEXT(字符串文本 ...

随机推荐

  1. bootstrap复习:组件

    一.下拉菜单 1.实例:将下拉菜单触发器和下拉菜单都包裹在 .dropdown 里,或者另一个声明了 position: relative; 的元素.然后加入组成菜单的 HTML 代码.为下拉菜单的父 ...

  2. dubbo 的monitor监视器安装问题——————monitor一直处于正在启动状态

    一台服务器安装完zookeeper并启动后,然后在另一服务器安装monitor     dubbo-monitor-simple-2.8.3  解压安装 修改配置文件 dubbo.container= ...

  3. 【LeetCode】2.Add Two Numbers

    首先想到的是走到其中一个链表的尽头,然后把剩余的链表中的值放入写的链表,返回,但是自己写的代码好长. struct ListNode* addTwoNumbers(struct ListNode* l ...

  4. hdu_5968_异或密码(预处理+二分)

    题目链接:hdu_5968_异或密码 题意: 中午,不解释 题解: 前缀处理一下异或值,然后上个二分查找就行了,注意是unsigned long long #include<bits/stdc+ ...

  5. vs2012常用快捷键总结

    ctrl+k+c  注释 ctrl+k+u 取消注释 ctrl+m+t 折叠代码 ctrl+t 取消折叠 ctrl+k+d 调节代码 ctrl+f 查找 ctrl+g  跳转行(一般调试的时候显示哪行 ...

  6. .Net Core 学习资料

    官方网站:https://www.microsoft.com/net/core#windows   官方文档:https://docs.asp.net/en/latest/intro.html   中 ...

  7. 关于UIFont和计算字符串的高度和宽度

    转自:http://i.cnblogs.com/EditPosts.aspx?opt=1 1.创建方法:+ fontWithName:size:- fontWithSize:2.创建系统字体:+ sy ...

  8. java URL编程

    一.URL编程技术 URL是统一资源定位器的缩写,它是指向互联网“资源”的指针.URL表示了Internet上某个资源的地址.URL支持http,file,ftp等 多种协议.通过URL标识,可以直接 ...

  9. 《JavaScript高级程序设计》读书笔记 ---函数

    函数函数对任何语言来说都是一个核心的概念.通过函数可以封装任意多条语句,而且可以在任何地方.任何时候调用执行.ECMAScript 中的函数使用function 关键字来声明,后跟一组参数以及函数体. ...

  10. C# WebService 概念,创建及引用调用

    1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求, ...