动态读取二进制图片并绑定CheckBox实现批量删除图片[原创]
2009-07-25 16:07
453 查看
实现功能:动态读取二进制图片并绑定CheckBox,然后在页面中选中一个或多个CheckBox实现批量删除。
难点:动态添加CheckBox的代码若没有放到Page_Load的if(!ispostback)里,则每次回发后,服务器都将重新加载checkbox,所以checkbox的CheckChanged事件将无法触发。
解决办法:在 Page_Init事件里利用ViewState保存一组信息(被选中的所有CheckBox的ID),同时,将所有动态添加的checkbox的AutoPostBack设为false。
实现效果如下:
protected void Page_Init(object sender, EventArgs e)
2 protected void DataBindToImage()
2 protected void cb_CheckedChanged(object sender, EventArgs e)
2 public void DeleteImg(string path)
3 {
4Code
protected void DeleteImage(object sender, EventArgs e) //---------------------删除勾选的图片------------------------------
{
int imgNum = Convert.ToInt32((((Button)sender)).CommandArgument);
//==---------------------------------------------------------------为了获取文物图片的编号
TwoMuseum.Entity.Heritage.文物图片查询Info 文物图片查询=new 文物图片查询Info();
文物图片查询.SetValue("文物编号",Request.QueryString["文物_ID"]);
文物图片查询.SetVisble("文物图片编号");
TwoMuseum.BLL.Heritage.文物图片 文物图片 = new 文物图片();
DataTable dt = 文物图片.Search(文物图片查询);
DataRow dr;
for (int i = imgNum-1; i >-1 ; i--)
{
if (ViewState["cb" + i.ToString()] != null)
//if (Check[i]!=null)
{
dr = dt.Rows[i];
string 文物图片_ID = dr["文物图片编号"].ToString();
if (文物图片.Delete(文物图片_ID).Vlus)
this.Panel1.Controls.Add(new LiteralControl("<font color=red>删除图片成功!</font><br>"));
else
this.Panel1.Controls.Add(new LiteralControl("<font color=red>删除图片失败,数据库操作发生错误!!</font>"));
}
}
DataBindToImage();
}
另外,图片绑定的函数在page_load里调用,但不包含在if(!IspostBack)内。。
难点:动态添加CheckBox的代码若没有放到Page_Load的if(!ispostback)里,则每次回发后,服务器都将重新加载checkbox,所以checkbox的CheckChanged事件将无法触发。
解决办法:在 Page_Init事件里利用ViewState保存一组信息(被选中的所有CheckBox的ID),同时,将所有动态添加的checkbox的AutoPostBack设为false。
实现效果如下:
protected void Page_Init(object sender, EventArgs e)
2 protected void DataBindToImage()
2 protected void cb_CheckedChanged(object sender, EventArgs e)
2 public void DeleteImg(string path)
3 {
4Code
protected void DeleteImage(object sender, EventArgs e) //---------------------删除勾选的图片------------------------------
{
int imgNum = Convert.ToInt32((((Button)sender)).CommandArgument);
//==---------------------------------------------------------------为了获取文物图片的编号
TwoMuseum.Entity.Heritage.文物图片查询Info 文物图片查询=new 文物图片查询Info();
文物图片查询.SetValue("文物编号",Request.QueryString["文物_ID"]);
文物图片查询.SetVisble("文物图片编号");
TwoMuseum.BLL.Heritage.文物图片 文物图片 = new 文物图片();
DataTable dt = 文物图片.Search(文物图片查询);
DataRow dr;
for (int i = imgNum-1; i >-1 ; i--)
{
if (ViewState["cb" + i.ToString()] != null)
//if (Check[i]!=null)
{
dr = dt.Rows[i];
string 文物图片_ID = dr["文物图片编号"].ToString();
if (文物图片.Delete(文物图片_ID).Vlus)
this.Panel1.Controls.Add(new LiteralControl("<font color=red>删除图片成功!</font><br>"));
else
this.Panel1.Controls.Add(new LiteralControl("<font color=red>删除图片失败,数据库操作发生错误!!</font>"));
}
}
DataBindToImage();
}
另外,图片绑定的函数在page_load里调用,但不包含在if(!IspostBack)内。。
相关文章推荐
- C# sql 实现图片批量储存读取
- 使用JDBC连接Mysql数据库存入二进制图片并实现读取在PHP中打开展示。
- 【android】ListView+SimpleCursorAdapter+checkbox实现批量删除
- Jquery 实现动态加入table tr 和删除tr 以及checkbox的全选 和 获取加入TR删除TR后的数据
- 通过Spring JDBC+checkbox标签实现批量删除功能
- 详解vb.net实现图片以二进制形式上传和读取到数据库
- 用自定义图片代替原生checkbox实现全选,删除以及提交的方法
- 用自定义图片代替原生checkbox实现全选,删除以及提交
- Android中ListView绑定CheckBox实现全选增加和删除功能(DEMO)
- Mybatis 使用动态语句实现批量删除(delete结合foreach)
- easyui datagrid实现批量添加、删除、修改,列多对多动态配比
- 动态添加图片并绑定删除事件
- Android中实现截图保存到指定目录或者系统图片,并支持批量删除
- asp.net checkbox 动态绑定id GridView删除提示
- 动态SQL实现批量删除指定数据库的全部进程
- 详解vb.net实现图片以二进制形式上传和读取到数据库
- 在struts中使用checkbox实现批量删除
- 在GridView实现批量删除记录、CheckBox全选
- ListView+CheckBox,实现批量删除与解决listview滚动checkBox选择状态絮乱
- Android 长按Listview显示CheckBox,实现批量删除。