日期:2014-05-17  浏览次数:20504 次

【再请教】为何删除文件后自动退出系统?
某系统,登录后用Session保存登录信息

创建一个新的表单,上传附件后用GridView显示出来

发现上传错误后,删除某个文件,使用了GridView的RowDeleting事件:
1、先删除此文件
2、再删除此文件所在的目录
3、接着删除保存在数据库中的文件信息

最后问题出现:添加多个文件没有问题,删除1个文件也没有问题,当删除第二个文件或删除后又准备添加附件时,自动清空了Session的信息。

请教,何解???


------解决方案--------------------
莫非是 Response.Write("<script>alert('删除操作失败')</script>"); 这个问题?

用这种方式试试?
ClientScript.RegisterClientScriptBlock
------解决方案--------------------
引用:
以下是GridView的RowDeleting事件代码


protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        //删除文件及空文件夹
        string sPath = Server.MapPath("..") + "/upload/" + DateTime.Now.ToString("yyyy-MM").Replace("-", "") + "/" + GridView1.Rows[e.RowIndex].Cells[0].Text.ToString()+"/";
       
        File.Delete(sPath + GridView1.Rows[e.RowIndex].Cells[3].Text.ToString()); //删除文件
        //判断目录是否为空,是则删除!
        int Fi = new DirectoryInfo(sPath).GetFiles().Count();
        if (Fi < 2)
        {
            System.IO.Directory.Delete(sPath, true);
        }
        //删除数据库资料
        string delsql = "delete from AttachmentTab where Tnum='" + Request["DocID"].ToString() + "' and ID='" + GridView1.Rows[e.RowIndex].Cells[0].Text.ToString() + "'";
        int revalue = db.Sqlex(delsql);
        if (revalue == 0)
        { Response.Write("<script>alert('删除操作失败')</script>"); }