虐乳器带来什么感觉?:ListView控件学习系列2-编辑ListView(Edit,Update,Insert...
来源:百度文库 编辑:九乡新闻网 时间:2024/07/14 04:29:07
一、编辑,取消,更新操作
首先拖一个ListView控件到页面,然后按如下代码进行调整,这里为了利用ListView控件中按钮的内置功能CommandName必须和我们这里的名字一样
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
<%#Eval("ID") %>
<%#Eval("name") %>
这里我们在App_Code文件夹中添加DataAccess类来模拟数据提供,代码如下:
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
public class DataAccess
{
public List
public DataAccess()
{
List = new List
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; }
}
页面的后台代码如下:
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
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中绑定时必须判断是否是回发,如果是回发状态则不能重新绑定,因为如果重新绑定则相应的事件不会被触发
二、删除操作
前端代码
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
<%#Eval("name") %>
因为这里是模拟数据提供,所以数据的状态我们暂且用Session保存,后台代码如下:
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
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的最后面
前端代码:
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
<%#Eval("ID") %>
后台代码
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
public partial class Default3 : 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();
}
}
private void Bind()
{
ListView1.DataSource = da.List;
ListView1.DataBind();
}
protected void ListView1_ItemInserting(object sender, ListViewInsertEventArgs e)
{
int id = Convert.ToInt32(((TextBox)e.Item.FindControl("IDTextBox")).Text);
string name= ((TextBox)e.Item.FindControl("NameTextBox")).Text;
int age = Convert.ToInt32(((TextBox)e.Item.FindControl("AgeTextBox")).Text);
Data.Employee employee = new Data.Employee { ID = id, Name = name, Age = age };
ListView1.InsertItemPosition = InsertItemPosition.None;
da.List.Add(employee);
Bind();
}
protected void Button1_Click(object sender, EventArgs e)
{
ListView1.InsertItemPosition = InsertItemPosition.LastItem;
Bind();
}
protected void ListView1_ItemCanceling(object sender, ListViewCancelEventArgs e)
{
ListView1.InsertItemPosition = InsertItemPosition.None;
Bind();
}
}
ListView控件学习系列2-编辑ListView(Edit,Update,Insert...
listview 用法
Listview导出EXCEL功能模块
Android ListView常用用法
简单的添加ListView
Delphi ListView用法
Listview导出EXCEL功能模块007
VB Listview导出EXCEL功能模块
Android SimpleAdapter,列表(ListView)、表格(GridView)
自己的收藏:Android SimpleAdapter,列表(ListView)、表格(GridView)
ListView 实现像Android Market那样 分页加载 滚动加载
如何象XP分組顯示Listview的Item(XP)。
delphi listview自绘图形显示进度条 分颜色显示
MSHFLEXGRID控件讲座(2).网格的编辑,保存与加载 VB / 控件 - CSDN...
android中ListView点击和里边按钮或ImageView点击不能同时生效问题解决...
提高Oracle的Insert、Update等操作速度-Oracle认证考试-考试大
ACCESS的真假:二、检查记录有无再insert 或 update 比 不管有无直接 d...
网络编辑系列知识2
SQL学习第九步---SQL UPDATE 语句
VC++之控件之彩色编辑框
Cool Edit Pro 2.1录音学习教程
快速学习Cool Edit Pro软件
SQL学习第八步---SQL INSERT INTO 语句
学习编辑指标1