一个gridview,datasource是两个关联的表。一个表是专门保存图片的路径【ImgUrl】,一个表是专门保存产品信息【Product】,一个删除的linkbutton1. 前台我用一个隐藏的label1来绑定【表ImgUrl】的字段(ImgPath),还有一个隐藏label2绑定【表ImgUrl】的(PicID), 后台我要在什么事件中和如何获得这两个label的值?2.我要删除girdview数据的同时删除掉这个图片,并删除【表ImgUrl】中的记录,这段代码我要写在什么事件中?
System.IO.File.Delete(Server.MapPath(ImgPath))
Call AddPic.DeletePic(PicID)

解决方案 »

  1.   

    在删除事件里
    Label lb =(Label)gridview1.Rows[e.RowIndex].FindControl("你的label的id");
    String Path = lb.Text;
      

  2.   

    对哦。发现用label这样不行,因为gridview中绑定的一行中,【表ImgUrl】的字段(ImgPath)不止一条记录。这样无法获得全部的相关图片路径
      

  3.   

    你不是说,ImgPath不止一条记录么?如果可能(这个不用于显示,只用于记录!)
    只是想删除图片的话,其实可以把所有图片地址,一起记录到Label中,(之间用特殊符号间隔..)
    之后,获取内容之后,再分隔出来删除不就行了么?
      

  4.   

    回ls:这个办法可以。但是如何把如何把把所有图片地址,一起记录到Label中
      

  5.   

    不对,sql虽然查出n条记录了,但是n条记录不能当一条显示啊。label不能实现哦。
      

  6.   

    你可以写一个存储过程,用于连接这些图片路径。
    将这些路径用分隔符(如:逗号)隔开,作为一个字段,查询出来就可以了。Create table #Product_ImgUrl(Product varchar(50), ImgUrl_List varchar(8000)) --创建临时表用于存储结果Declare @Product varchar(50),--产品编号
      @ImgUrl varchar(200),--图片路径
      @ImgUrl_List varchar(8000)--图片路径字符串列表DECLARE Product_cursor CURSOR FOR --循环产品
    SELECT Product
    FROM 产品表OPEN Product_cursorFETCH NEXT FROM Product_cursor 
    INTO @ProductWHILE @@FETCH_STATUS = 0
    BEGIN
     
       DECLARE ImgUrl_cursor CURSOR FOR  --循环产品对应的图片
       SELECT ImgUrl
       FROM 图片表
       WHERE Product = @Product   OPEN ImgUrl_cursor
       FETCH NEXT FROM ImgUrl_cursor INTO @ImgUrl   WHILE @@FETCH_STATUS = 0
       BEGIN
          
          SET @ImgUrl_List = @ImgUrl_List + @ImgUrl + ','
      
       END   CLOSE ImgUrl_cursor
       DEALLOCATE ImgUrl_cursor
       
       insert into  #Product_ImgUrl values(@Product,@ImgUrl_List) --插入到临时表中
       SEt  @ImgUrl_List = '' --别忘了清空列表备用   FETCH NEXT FROM Product_cursor 
       INTO @Product
    ENDCLOSE Product_cursor
    DEALLOCATE Product_cursorselect * from #Product_ImgUrl --结果出来了
    GO临时表的内容可根据你的需求适当添加,希望对你有帮助!:)我的问题帖子有人会吗?郁闷!