首页 > 为何在程序中使用2个 “this.Button1.Attributes.Add("onclick", "return confirm('您确定要重新申请角色吗?')");”确认对话框,程序运行时无法跳出?

为何在程序中使用2个 “this.Button1.Attributes.Add("onclick", "return confirm('您确定要重新申请角色吗?')");”确认对话框,程序运行时无法跳出?

 protected void Button1_Click(object sender, EventArgs e) 
        { 
            //此之前需要判断用户是否已经分配角色 
            perrole.Usercode = SFL.ProcessSession.GetSessionValue((DataSet)Session["SSMS_UserInfo"], "UserCode"); 
            // if(search.ISPicInUse(perrole.Usercode)) 
            if (search.Ifuploadpic(perrole.Usercode) == 0)//判断是否已上传图像 
            { 
                Response.Write(SFL.JScript.AlertMsg("您还没有上传影像,请先上传!")); 
            } 
            else 
            { 
              int i =  search.FindPic(perrole.Usercode, "0");//是否有待审核的影像 
              perrole.Imageid = i; 
                if (perrole.Imageid != 0)//有图片,未审核 
                { 
                    if (search.ISNull("personbook", "userrole", "pictureid", perrole.Imageid))//判断有没有申请角色,如果未申请,则申请得角色生效 
                    { 

                        InsertRole(GetRole(), perrole.Imageid);//上传图片后过来申请角色 

                    } 
                    else 
                    { 
                        this.Button1.Attributes.Add("onclick", "return confirm('您确定要重新申请角色吗?')"); 
                        InsertRole(GetRole(), perrole.Imageid); 
                    } 

                } 
                else 
                { 
                    perrole.Imageid = search.FindPic(perrole.Usercode, "1"); 
                    if (perrole.Imageid != 0)//已有在用影像和角色 
                    { 
                        DataSet ds=new DataSet(); 
                        perrole.Branchno = SFL.ProcessSession.GetSessionValue((DataSet)Session["SSMS_UserInfo"], "Branchcode"); 
                        perrole.Usercode = SFL.ProcessSession.GetSessionValue((DataSet)Session["SSMS_UserInfo"], "UserCode"); 
                        string username = SFL.ProcessSession.GetSessionValue((DataSet)Session["SSMS_UserInfo"], "UserName"); 
                        string surebranch = "select t.branchno from personbook t where t.usercode='" + perrole.Usercode + "' and status='1'"; 
                        ds=search.Getds(surebranch); 
                        string usebranch = ds.Tables[0].Rows[0][0].ToString(); 
                        if (perrole.Branchno==usebranch) 
                        { 
                            this.Button1.Attributes.Add("onclick", "return confirm('您确定要修改您在用影像的角色吗?')");//挑不出来,到底为什么? 
                            string enddate = System.DateTime.Now.ToString("yyyyMMdd"); 



                            string sql1 = "update personbook t set t.enddate='" + enddate + "',t.status='2'where t.pictureid='" + perrole.Imageid + "' and t.status='1'";//当前终止 
                            string sql2 = "insert into personbook (usercode,username,branchno,status,userrole,pictureid) values ('" + perrole.Usercode + "','" + username + "','" + perrole.Branchno + "','0','" + GetRole() + "','" + perrole.Imageid + "')"; 
                            search.insert(sql1); 
                            search.insert(sql2); 
                        } 
                        else 
                        { 
                           //终止该用户在用影像 
                            //重新插入一个新的机构的记录 

                            string enddate = System.DateTime.Now.ToString("yyyyMMdd"); 
                            search.CutoldBranPic(perrole.Usercode, enddate); 
                            string newinsert = "insert into personbook (usercode,username,branchno,status,userrole,pictureid) values ('" + perrole.Usercode + "','" + username + "','" + perrole.Branchno + "','0','" + GetRole() + "','" + perrole.Imageid + "')"; 
                            search.insert(newinsert); 
                        } 
                    } 

                } 
                Response.Write(SFL.JScript.AlertMsg("角色分配成功!")); 
            }     

        } 

webform不常用,快忘光了,不保证答案正确。。。。

这里有一个Button1,你想让它click的时候弹出确认框,对么? 现在的状况是不是第一次点击Button1的时候刷新下页面,但是没弹出来对么?完了再点击一下试试。

Button1Click 这段代码是服务器端运行的,你第一次打开这个页面时候,Button1的Click没有触发,所以不会执行,所以你要在它生成的html里边,就没有onclick这个事件。 当你第一次点击后,页面刷新了,服务器端代码Button1Click 执行了,然后生成的新按钮上多了onclick属性,然后你第二次点击应该就可以执行了。

建议lz多学习下基础知识,了解下webform运行的机制。建议用chrome浏览器,学会使用它的开发工具。多看看webform生成的html代码,看看点击按钮触发事件时候,发出了什么http请求。

【热门文章】
【热门文章】