您的位置:首页 > 其它

关于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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: