none
如何让弹出窗口的“确认”和“取消”起作用? RRS feed

  • 问题

  •     我用FormView做了一个用于显示、修改数据的界面,点击显示界面中的“编辑”,就跳转到编辑界面。

        在编辑界面中我设置了一个图片上传的功能,这个功能主要是两个键,一个是FileUpLoad,另一个是Button。

        点击Button就会将图片输入到数据库中去,我测试没有问题。

        现在我需要优化一下这个Button:当点击Button时,要先判断在sql数据库中是否已存在图片,如果存在图片,就需要再次“确定”或“取消”来执行修改或放弃修改。

        问题:我要如何设置这个功能呢?需要修改的代码如 图1 所示,完整代码附在最后!

        请帮忙看看,3Q!

    --------------------------------------图1-------------------------------------

    ----------------------------------代码1-----------------------------------

    protected void CPUPhoto_Click(object sender, EventArgs e)
        {
            if (!((FileUpload)this.FormView1 .FindControl ("UploadCPUPhoto")).HasFile)
            {
                ((Label)this.FormView1 .FindControl ("lbMessage")) .Text = "请选择上传图片!";
                return;
            }
            else
            {
                try
                {
                    //获取上传文件路径
                    string filePath = ((FileUpload)this.FormView1.FindControl("UploadCPUPhoto")).PostedFile.FileName;
                    //获取上传文件后缀
                    string fileExt = filePath.Substring(filePath.LastIndexOf(".") + 1);
                    //限定上传格式
                    if (fileExt.ToLower() == "gif" || fileExt.ToLower() == "jpg" || fileExt.ToLower() == "bmp" || fileExt.ToLower() == "png")
                    {
                        if (((FileUpload)this.FormView1 .FindControl ("UploadCPUPhoto")).PostedFile.ContentLength > 5120000)
                        {
                            ((Label)this.FormView1 .FindControl ("lbMessage")).Text = "限定上传图片的大小不能超出5M!";
                            return;
                        }
                        else
                        {
                            //生成文件名
                            string newName = ((Label)this.FormView1.FindControl("CIDLabel")).Text;
                            string fileName = newName + "." + fileExt;
                            //源文件保存路径
                            string savePath = Server.MapPath("~/Pictures/ContractPic/");
                            //上传图片
                            ((FileUpload)this.FormView1 .FindControl ("UploadCPUPhoto")).PostedFile.SaveAs(savePath + fileName);
    
                            ////文件类型
    
                            //开始运行数据库
                            string strconnNo = "Data Source=.;Initial Catalog=长铁物业公司资产数据库;Integrated Security=True";
                            SqlConnection cnNo = new SqlConnection(strconnNo);
                            cnNo.Open();
                            string ContractUrlNo = "select ContractPictureUrl from ContractTable where CID='"+newName+"'";
                            SqlCommand cmNo = new SqlCommand(ContractUrlNo ,cnNo);
                            SqlDataReader drNo=cmNo .ExecuteReader();
    
                            //判断sql数据库相应的数据是否为空,为空则执行if,非空则执行else
                            if (drNo.Read() && drNo["ContractPictureUrl"] == System.DBNull.Value)
                            {
                                string strconn = "Data Source=.;Initial Catalog=长铁物业公司资产数据库;Integrated Security=True";
                                SqlConnection cn = new SqlConnection(strconn);
                                cn.Open();
                                string ContractUrl = "update ContractTable set ContractPictureUrl ='" + fileName + "'  where CID='" + newName + "'";
                                SqlCommand cm = new SqlCommand(ContractUrl, cn);
                                SqlDataReader dr = cm.ExecuteReader();
                                cn.Close();
                            }
                            else
                            {
                                //ClientScript.RegisterStartupScript(typeof(Page), "图片已存在", "alert('图片已存在');", true); 
                                //Response.Write("是");
                                //Response.Write("<script languge=javascript'>if(confirm('图片已存在,是否替换该图片?')){alert('替换完成')}else{alert('替换取消')}</script>");
                                //Response.Write("否");
                                ((Button)this.FormView1.FindControl("CPUPhoto")).Attributes.Add("onclick", "javascript:return window.confirm('确认更改吗?')");
    
    
                            }
    
    
                        }
                    }
                    else
                    {
                        ((Label)this.FormView1 .FindControl ("lbMessage")).Text = "只允许上传gif,jpg,bmp,png格式的图片文件!";
                        return;
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message, ex);
                }
            }
        }


    C# 菜鸟中的雏鸟!提的问题也许很幼稚,但我是认真的。希望看在党国的面子上拉兄弟一把!

    2013年7月17日 3:05

答案

  • 我個人只能給點建議,實際可能還要請你再試試。

    我看你判斷是否有重複是依靠

     string newName = ((Label)this.FormView1.FindControl("CIDLabel")).Text;

    那麼當在Page_Load的時候如果已經有了newName的數值,先去資料庫看看有沒有這一筆資料,如果有(表示需要通知對方),那麼在加上你現在的那個:

    ((Button)this.FormView1.FindControl("CPUPhoto")).Attributes.Add("onclick", "javascript:return window.confirm('確認更改嗎?')");

    如果沒有(表示不需要通知)就不用加了。

    希望有幫到你。
    2013年7月17日 14:13