关于ListView的一些数据操作!(第2天)
2009-06-18 13:28
225 查看
用惯了GridView,DataList,今天学习了关于ListView的操作,在此做一个备忘!
首先是ListView的模板机制
<LayoutTemplate>是用来标记表格的标题列;
<ItemTemplate>是用来显示数据的;
<EditItemTemplate>是用来进行数据编辑的才显示的;
<InsertItemTemplate>是用来插入数据时才显示的;
以下是前台代码的具体实现:
Code
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
Bind();
}
TestDataContext tdc = new TestDataContext();//创建Linq的数据操作类
/// <summary>
/// 数据库绑定操作
/// </summary>
private void Bind()
{
ListView1.DataSource = tdc.Test;//tdc.text是获取数据库的表
ListView1.DataBind();// ListView的数据绑定
}
protected void Button1_Click(object sender, EventArgs e)
{
ListView1.InsertItemPosition = InsertItemPosition.LastItem;//InsertItemPosition.LastItem的意思是显示插入的位置是在表格的最后一列
Bind();
}
protected void ListView1_ItemCanceling(object sender, ListViewCancelEventArgs e)
{
ListView1.InsertItemPosition = InsertItemPosition.None;//InsertItemPosition.None的意思是不显示插入或修改的显示
ListView1.EditIndex = -1;//为-1则取消
Bind();
}
/// <summary>
/// 插入操作
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ListView1_ItemInserting(object sender, ListViewInsertEventArgs e)
{
string username = ((TextBox)e.Item.FindControl("tbUsername")).Text;//将tbUsername的值付给username
string password = ((TextBox)e.Item.FindControl("tbPassword")).Text;//同理
Test.Models.Test test = new Test.Models.Test();//将数据库的操作类实体化 Test(命名空间)Models(文件名)Test(LINQ to SQL 类)
test.Username = username;
test.Password = password;
tdc.Test.InsertOnSubmit(test);//InsertOnSubmit插入操作
tdc.SubmitChanges();//执行更新
ListView1.InsertItemPosition = InsertItemPosition.None;
Bind();
}
/// <summary>
/// 删除操作
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ListView1_ItemDeleting(object sender, ListViewDeleteEventArgs e)
{
int id = Convert.ToInt32(ListView1.DataKeys[e.ItemIndex].Value);//获取当前列ID
Test.Models.Test test = tdc.Test.SingleOrDefault(t => t.ID == id);//SingleOrDefault获取满足条件的唯一值,若为空,则为NULL; t为Test.Models.Test的实例化,查询获取的id;
tdc.Test.DeleteOnSubmit(test);//DeleteOnSubmit删除操作
tdc.SubmitChanges();
Bind();
}
/// <summary>
/// 修改操作
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ListView1_ItemEditing(object sender, ListViewEditEventArgs e)
{
ListView1.EditIndex = e.NewEditIndex;//获取编辑项的位置
Bind();
}
/// <summary>
/// 更新操作
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ListView1_ItemUpdating(object sender, ListViewUpdateEventArgs e)
{
int id = Convert.ToInt32(ListView1.DataKeys[e.ItemIndex].Value);
Test.Models.Test test = tdc.Test.SingleOrDefault(t => t.ID == id);//同上
test.Username = ((TextBox)ListView1.Items[e.ItemIndex].FindControl("tbUsername")).Text;
test.Password = ((TextBox)ListView1.Items[e.ItemIndex].FindControl("tbPassword")).Text;
tdc.SubmitChanges();
ListView1.EditIndex = -1;
Bind();
}
首先是ListView的模板机制
<LayoutTemplate>是用来标记表格的标题列;
<ItemTemplate>是用来显示数据的;
<EditItemTemplate>是用来进行数据编辑的才显示的;
<InsertItemTemplate>是用来插入数据时才显示的;
以下是前台代码的具体实现:
Code
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
Bind();
}
TestDataContext tdc = new TestDataContext();//创建Linq的数据操作类
/// <summary>
/// 数据库绑定操作
/// </summary>
private void Bind()
{
ListView1.DataSource = tdc.Test;//tdc.text是获取数据库的表
ListView1.DataBind();// ListView的数据绑定
}
protected void Button1_Click(object sender, EventArgs e)
{
ListView1.InsertItemPosition = InsertItemPosition.LastItem;//InsertItemPosition.LastItem的意思是显示插入的位置是在表格的最后一列
Bind();
}
protected void ListView1_ItemCanceling(object sender, ListViewCancelEventArgs e)
{
ListView1.InsertItemPosition = InsertItemPosition.None;//InsertItemPosition.None的意思是不显示插入或修改的显示
ListView1.EditIndex = -1;//为-1则取消
Bind();
}
/// <summary>
/// 插入操作
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ListView1_ItemInserting(object sender, ListViewInsertEventArgs e)
{
string username = ((TextBox)e.Item.FindControl("tbUsername")).Text;//将tbUsername的值付给username
string password = ((TextBox)e.Item.FindControl("tbPassword")).Text;//同理
Test.Models.Test test = new Test.Models.Test();//将数据库的操作类实体化 Test(命名空间)Models(文件名)Test(LINQ to SQL 类)
test.Username = username;
test.Password = password;
tdc.Test.InsertOnSubmit(test);//InsertOnSubmit插入操作
tdc.SubmitChanges();//执行更新
ListView1.InsertItemPosition = InsertItemPosition.None;
Bind();
}
/// <summary>
/// 删除操作
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ListView1_ItemDeleting(object sender, ListViewDeleteEventArgs e)
{
int id = Convert.ToInt32(ListView1.DataKeys[e.ItemIndex].Value);//获取当前列ID
Test.Models.Test test = tdc.Test.SingleOrDefault(t => t.ID == id);//SingleOrDefault获取满足条件的唯一值,若为空,则为NULL; t为Test.Models.Test的实例化,查询获取的id;
tdc.Test.DeleteOnSubmit(test);//DeleteOnSubmit删除操作
tdc.SubmitChanges();
Bind();
}
/// <summary>
/// 修改操作
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ListView1_ItemEditing(object sender, ListViewEditEventArgs e)
{
ListView1.EditIndex = e.NewEditIndex;//获取编辑项的位置
Bind();
}
/// <summary>
/// 更新操作
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ListView1_ItemUpdating(object sender, ListViewUpdateEventArgs e)
{
int id = Convert.ToInt32(ListView1.DataKeys[e.ItemIndex].Value);
Test.Models.Test test = tdc.Test.SingleOrDefault(t => t.ID == id);//同上
test.Username = ((TextBox)ListView1.Items[e.ItemIndex].FindControl("tbUsername")).Text;
test.Password = ((TextBox)ListView1.Items[e.ItemIndex].FindControl("tbPassword")).Text;
tdc.SubmitChanges();
ListView1.EditIndex = -1;
Bind();
}
相关文章推荐
- 关于Oracle数据导入导出的一些操作
- json格式的数据绑定到listview上的一些操作
- 关于下拉列表加载数据的一些操作
- 关于如何取Dev Express中一些控件中的数据与Oracle的一些操作
- 关于ListView不进getView()或者是listview不显示数据的一些心得
- 关于ListView中Detail模式下的一些基本操作
- 关于datatable的一些操作以及使用adapter对数据的操作
- 关于ListView数据刷新的一些细节
- 回帖整理: 关于面向对象与数据操作的集合贴
- 关于矩阵的一些操作(求转置矩阵、行列式、矩阵的秩、矩阵的逆矩阵、两个矩阵的乘积矩阵)
- 关于Microsoft.Office.Interop.Excel的一些简单操作
- 关于Linu型的一些基础常见操作命令(三)——文件属性操作
- 《关于大数据的一些基本常识整理》
- 关于文件的一些操作
- 关于内存和指针操作,数据类型转换本质的理解
- 关于Android栈的一些操作
- 对数据操作后,设置了adapter.notifyDataSetChanged() ListView数据不更新
- 关于Java中的数据表示的一些讨论
- 关于datagridview的一些操作
- 关于postgres数据库的一些操作细节