gridview 在列表中对信息进行增删改,通过VIEWSTATE进行缓存,然后一次性将数据提交到服务器端。
2010-05-27 09:38
627 查看
为XX人写的DEMO样例,功能实现:gridview 在列表中对信息进行增删改,通过VIEWSTATE进行缓存,然后一次性将数据提交到服务器端。 下载地址:DOWNLOAD
代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = GetData();
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
}
public DataTable GetData()
{
DataTable dt = new DataTable();
dt.Columns.Add("Title");
dt.Columns.Add("ID");
DataRow dr = dt.NewRow();
dr["Title"] = "测试标题";
dr["ID"] = "1";
dt.Rows.Add(dr);
DataRow dr1 = dt.NewRow();
dr1["Title"] = "测试标题";
dr1["ID"] = "1";
dt.Rows.Add(dr1);
//新增行处理
if (ViewState["ADDIdS"] != null)
{
string idAdds = ViewState["ADDIdS"].ToString();
idAdds = idAdds.TrimStart(char.Parse(","));
string[] items = idAdds.Split(char.Parse(","));
for (int i = 0; i < items.Length; i++)
{
DataRow dtOne = dt.NewRow();
dtOne["ID"] = (items[i].Split(char.Parse("|")))[0];
dtOne["Title"] = (items[i].Split(char.Parse("|")))[1];
dt.Rows.Add(dtOne);
}
}
//删除行处理 -- 自己搞定
if (ViewState["DeleteIdS"] != null)
{
string[] ids = (ViewState["DeleteIdS"].ToString()).TrimStart(char.Parse(",")).Split(char.Parse(","));
for (int i = 0; i < ids.Length; i++)
{
for (int ii = 0; ii < dt.Rows.Count; ii++)
{
if (dt.Rows[ii]["ID"].ToString() == ids[i])
{
dt.Rows[ii].Delete();
break;
}
}
}
}
return dt;
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
if (ViewState["DeleteIdS"] == null)
{
ViewState.Add("DeleteIdS", string.Format(",{0}", GridView1.DataKeys[e.RowIndex].Value.ToString()));
}
else
{
ViewState["DeleteIdS"] = ViewState["DeleteIdS"].ToString() + string.Format(",{0}", GridView1.DataKeys[e.RowIndex].Value.ToString()); // ViewState["DeleteIdS"]
}
//检索增加记录,看看是否存在删除的ID
string idAdds = ViewState["ADDIdS"] != null ? ViewState["ADDIdS"].ToString() : null;
if (idAdds != null)
{
idAdds = idAdds.TrimStart(char.Parse(","));
string[] items = idAdds.Split(char.Parse(","));
//过滤相关记录并进行组装,
for (int i = 0; i < items.Length; i++)
{
}
}
DataTable dt = GetData();
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
if (ViewState["ADDIdS"] == null)
{
ViewState.Add("ADDIdS", string.Format(",{0}|{1}",Guid.NewGuid().ToString(),this.TextBox1.Text));
}
else
{
ViewState["ADDIdS"] = ViewState["ADDIdS"].ToString() + string.Format(",{0}|{1}",Guid.NewGuid().ToString(),this.TextBox1.Text); // ViewState["DeleteIdS"]
}
DataTable dt = GetData();
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
protected void Button2_Click(object sender, EventArgs e)
{
//新增行数据
string idAdds = ViewState["ADDIdS"] != null? ViewState["ADDIdS"].ToString() : null; //
//删除行数据
string[] ids = ViewState["DeleteIdS"] != null ? null:(ViewState["DeleteIdS"].ToString()).TrimStart(char.Parse(",")).Split(char.Parse(","));
//新增行处理
if (idAdds != null)
{
idAdds = idAdds.TrimStart(char.Parse(","));
string[] items = idAdds.Split(char.Parse(","));
//新增行处理
for (int i = 0; i < items.Length; i++)
{
}
}
}
代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = GetData();
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
}
public DataTable GetData()
{
DataTable dt = new DataTable();
dt.Columns.Add("Title");
dt.Columns.Add("ID");
DataRow dr = dt.NewRow();
dr["Title"] = "测试标题";
dr["ID"] = "1";
dt.Rows.Add(dr);
DataRow dr1 = dt.NewRow();
dr1["Title"] = "测试标题";
dr1["ID"] = "1";
dt.Rows.Add(dr1);
//新增行处理
if (ViewState["ADDIdS"] != null)
{
string idAdds = ViewState["ADDIdS"].ToString();
idAdds = idAdds.TrimStart(char.Parse(","));
string[] items = idAdds.Split(char.Parse(","));
for (int i = 0; i < items.Length; i++)
{
DataRow dtOne = dt.NewRow();
dtOne["ID"] = (items[i].Split(char.Parse("|")))[0];
dtOne["Title"] = (items[i].Split(char.Parse("|")))[1];
dt.Rows.Add(dtOne);
}
}
//删除行处理 -- 自己搞定
if (ViewState["DeleteIdS"] != null)
{
string[] ids = (ViewState["DeleteIdS"].ToString()).TrimStart(char.Parse(",")).Split(char.Parse(","));
for (int i = 0; i < ids.Length; i++)
{
for (int ii = 0; ii < dt.Rows.Count; ii++)
{
if (dt.Rows[ii]["ID"].ToString() == ids[i])
{
dt.Rows[ii].Delete();
break;
}
}
}
}
return dt;
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
if (ViewState["DeleteIdS"] == null)
{
ViewState.Add("DeleteIdS", string.Format(",{0}", GridView1.DataKeys[e.RowIndex].Value.ToString()));
}
else
{
ViewState["DeleteIdS"] = ViewState["DeleteIdS"].ToString() + string.Format(",{0}", GridView1.DataKeys[e.RowIndex].Value.ToString()); // ViewState["DeleteIdS"]
}
//检索增加记录,看看是否存在删除的ID
string idAdds = ViewState["ADDIdS"] != null ? ViewState["ADDIdS"].ToString() : null;
if (idAdds != null)
{
idAdds = idAdds.TrimStart(char.Parse(","));
string[] items = idAdds.Split(char.Parse(","));
//过滤相关记录并进行组装,
for (int i = 0; i < items.Length; i++)
{
}
}
DataTable dt = GetData();
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
if (ViewState["ADDIdS"] == null)
{
ViewState.Add("ADDIdS", string.Format(",{0}|{1}",Guid.NewGuid().ToString(),this.TextBox1.Text));
}
else
{
ViewState["ADDIdS"] = ViewState["ADDIdS"].ToString() + string.Format(",{0}|{1}",Guid.NewGuid().ToString(),this.TextBox1.Text); // ViewState["DeleteIdS"]
}
DataTable dt = GetData();
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
protected void Button2_Click(object sender, EventArgs e)
{
//新增行数据
string idAdds = ViewState["ADDIdS"] != null? ViewState["ADDIdS"].ToString() : null; //
//删除行数据
string[] ids = ViewState["DeleteIdS"] != null ? null:(ViewState["DeleteIdS"].ToString()).TrimStart(char.Parse(",")).Split(char.Parse(","));
//新增行处理
if (idAdds != null)
{
idAdds = idAdds.TrimStart(char.Parse(","));
string[] items = idAdds.Split(char.Parse(","));
//新增行处理
for (int i = 0; i < items.Length; i++)
{
}
}
}
相关文章推荐
- 对HTML 通过GET 方法进行提交后,对信息进行解码JAVA类
- 显示数据列表,并能进行增删改的操作
- .NET中如何通过文本框中按回车键进行的提交数据
- Recyclerview列表,item嵌套横向Gridview 解决滑动冲突,数据加载问题
- 使用cookie技术实现,缓存最近浏览过详细信息的三本书的书名列表,并进行相应显示
- jquery通过select列表选择框对表格数据进行过滤示例
- .NET中如何通过文本框中按回车键进行的提交数据
- 根据从redis缓存的数据查询出来,在从数据库中取出所有的数据,俩个数据进行比较,去掉重复,剩下库中新插入的数据,取出新数据,然后把redis中的缓存数据清空把从数据库中查出来的所有数据放到redis缓存中
- 通过 JS 实现与后台进行连接,提交表单,将获取到的数据pos给服务器。
- android端和pc端使用usb进行socket通信,其中android是服务器端,pc是客户端。如何实现安卓端输入的数据通过按钮发送到pc端?
- 对HTML 通过GET 方法进行提交后,对信息进行解码JAVA类
- 通过Ajax进行POST提交JSON类型的数据到SpringMVC Controller的方法
- UITableView,UICollectionView和CoreData完美结合进行增删改操作,如何导入大量数据,如何利用NSEntityMigrationPol
- 通过Ajax进行POST提交JSON类型的数据到SpringMVC Controller的方法
- GridView允许你通过EditIndex属性来修改数据的一行,同样也必须进行整行更新
- AJAX时,以GET方式提交数据,IE进行缓存,FF不缓存,四种解决的办法
- 对GridView单元格数据进行一次性保存到数据库中 批量保存GridView数据
- 编写HTML表单提交并接受数据信息(获取用户通过表单提交的内容)
- struts2 + ajax(由前台的form提交数据到后台,再根据form所调用返回获取的后台json格式的数据返回到前端,然后前端用jquery对json数据进行解析)==》》涉及文件上传的部分
- Android学习笔记:在Android平台上通过JSON格式与服务器端进行数据交互