当前位置:编程学习 > C#/ASP.NET >>

对话框确定取消

我要做一个一段删除程序,在点按扭后出现对话框,确定则删除,取消则不删除,但是我现在怎么按它都是删除了,怎么回事呢
程序
void Page_Load(Object sender, EventArgs e)
    {
 button2.Attributes.Add("onclick", "javascript:return window.confirm('确认删除吗?')");
    }
 protected void button2_click(object sender, EventArgs e)
    {
     
        OleDbConnection ConUpdateuser = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=D:\\电力\\project.mdb"); ;
        OleDbCommand CmdUpdateuser;
        string strUpdateuser = "Delete * from UserInfor where username=@username";
        CmdUpdateuser = new OleDbCommand(strUpdateuser, ConUpdateuser);
        CmdUpdateuser.Parameters.Add("@username", droplist .Text);

        ConUpdateuser.Open();
        CmdUpdateuser.ExecuteNonQuery();
        ConUpdateuser.Close();
        Response.Redirect(System.Web.HttpContext.Current.Request.Url.ToString());  
    }
<asp:Button ID ="button2" OnClick ="button2_click" runat ="server" Text ="删除" /> --------------------编程问答-------------------- protected   void   Page_Load(object   sender,   EventArgs   e) 
        { 
                BT_Delete.Attributes.Add( "OnClick ",   "Confirm() "); 
        } 
这是个小例子CS代码: 
        protected   void   BT_Delete_Click(object   sender,   EventArgs   e) 
        { 
                if   (TextBox1.Text   ==   "false ") 
                { 
                        Response.Write( "你选择的是否! "); 
                        return; 
                } 

                Response.Write( "你选择的是继续执行! "); 
        } 

HTML代码: 
<html   xmlns= "http://www.w3.org/1999/xhtml "   > 
<head   runat= "server "> 
        <title> 无标题页 </title> 
        
        <script   language= "javascript "   type= "text/javascript "> 
        function   Confirm() 
        { 
                var   bool   =   window.confirm( "是否继续删除? "); 
                if(bool) 
                        window.document.getElementById( "TextBox1 ").value   =   "true "; 
                else 
                        window.document.getElementById( "TextBox1 ").value   =   "false "; 
        } 
        </script> 
        
</head> 
<body> 
        <form   id= "form1 "   runat= "server "> 
        <div> 
                <asp:Button   ID= "BT_Delete "   runat= "server "   OnClick= "BT_Delete_Click "   Text= "删除 " 
                        Width= "82px "   /> 
                    <asp:TextBox   ID= "TextBox1 "   runat= "server "   Text= " "   /> 
                        </div> 
        </form> 
</body> 
</html> 

你的问题用上面的例子销改一下思路,就可以解决! --------------------编程问答--------------------

BT_Delete.Attributes.Add( "OnClick ",   "return Confirm() ");  

--------------------编程问答-------------------- javascript:return window.confirm('确认删除吗?')
===========
从代码中看不出任何问题
当点取消时,返回false,那么form也不会被提交,服务器事件也就不可能被响应

是否在其它地方对button的onclick也添加了js代码,导致返回值一直是真呢? --------------------编程问答-------------------- js语法是这样的:

if(confirm('确定删除吗?')){location='index.asp?ItemID='+document.itemform.temp.value+'&flag=Del';}
--------------------编程问答-------------------- 你这段代码只是给button加上了是否删除的js对话框,button2.Attributes.Add("onclick", "javascript:return window.confirm('确认删除吗?')"); 但客户端并没有把用户选择是或者否的结果返回到服务器段。服务器段肯定是直接删除。


如果你不想用ajax传递用户选择的结果。就使用如下方法
    <script type="text/javascript">
     function OnClickDelete()
     {
        var result = window.confirm('确定删除吗?');
        document.getElementById('TextBox1').value = result;
     }
    </script>

    <asp:Button ID ="button2"  OnClientClick="OnClickDelete()" runat ="server" Text ="删除" OnClick="button2_Click" /> 
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

    protected void button2_Click(object sender, EventArgs e)
    {
        if (bool.Parse(TextBox1.Text))
        {
            //用户选择是
            string a = "";
        }
        else
        {
            //用户选择否
        }
    } --------------------编程问答-------------------- 楼上说的是啊,我觉得代码没什么问题,我如果直接运行这个页面就没有问题,但是我这个页面是我一个框架中的一个页面,我把这个页面放到这个架构中就出现怎么都删除的问题了,是什么设置的原因吗??? --------------------编程问答--------------------
protected  void Page_Load(object   sender,   EventArgs   e)  
    {
        if (!this.IsPostBack)
        {
            cmdDelete.Attributes.Add("onclick", "return confirm('你真的要删除吗!!!')");
        }
   }
 protected void cmdDelete_Click(object sender, EventArgs e)
    {
        cmdDelete.Attributes.Add("onclick", "return confirm('你真的要删除吗!!!')");
       按确定后是你要执行的....

    } --------------------编程问答--------------------

btn1.Attributes.Add("onclick","return confirm('xxxxxxxxxx?')");
--------------------编程问答-------------------- 前台有没有其他的JS验证? --------------------编程问答-------------------- 没有了啊
好奇怪啊,我这个页面就只一个简单的用户管理功能,整个页面就这些程序
  void Page_Load(Object sender, EventArgs e)
    {  if(!IsPostBack)
    {
        OleDbConnection condatabase;
        OleDbCommand cmdSelectdatabase;
        OleDbDataReader dtrdatabase;
        string strSelect;

        // Retrieve records from database
        condatabase = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=D:\\朝阳电力\\project.mdb");

        condatabase.Open();
        cmdSelectdatabase = new OleDbCommand("Select * from UserInfor ", condatabase);
        dtrdatabase = cmdSelectdatabase.ExecuteReader();


        // Bind to dropdownlist
        droplist.DataSource = dtrdatabase;
        droplist.DataTextField = "username";
        droplist.DataBind();


        dtrdatabase.Close();
        condatabase.Close();
       
    }
    button2.Attributes.Add("onclick", "return confirm('确定删除?')");
    
    }
    void button1_click(Object sender, EventArgs e)
    {

        int quanxian = 0;
            if (droplist1.Text == "最高管理者") quanxian =3;
            if (droplist1.Text == "高级管理者") quanxian = 2;
            if (droplist1.Text == "二级管理者") quanxian = 1;
            if (droplist1.Text == "一般用户") quanxian = 0;

        OleDbConnection ConUpdateuser = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=D:\\朝阳电力\\project.mdb");;
        OleDbCommand CmdUpdateuser;
        string strUpdateuser="Update UserInfor set quanxian=@quanxian where username=@username";
        CmdUpdateuser = new OleDbCommand(strUpdateuser, ConUpdateuser);
        CmdUpdateuser.Parameters.Add("@quanxian",quanxian);
        CmdUpdateuser.Parameters.Add("@username", droplist.Text);
        ConUpdateuser.Open();
        CmdUpdateuser.ExecuteNonQuery();
        ConUpdateuser.Close();
      //  Response.Write("修改成功"); 
        Response.Write("<script>alert('修改成功!')</"+"script>"); 

    }
  
    protected void button2_click(object sender, EventArgs e)
    {
       

            OleDbConnection ConUpdateuser = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=D:\\朝阳电力\\project.mdb"); ;
            OleDbCommand CmdUpdateuser;
            string strUpdateuser = "Delete * from UserInfor where username=@username";
            CmdUpdateuser = new OleDbCommand(strUpdateuser, ConUpdateuser);
            CmdUpdateuser.Parameters.Add("@username", droplist.Text);

            ConUpdateuser.Open();
            CmdUpdateuser.ExecuteNonQuery();
            ConUpdateuser.Close();
            Response.Redirect(System.Web.HttpContext.Current.Request.Url.ToString());
       
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
      

</head>
<body>
    <form id="form1" runat="server">
    <div>
    <table id="table1" align="center" >
    <tr><td colspan ="2" height="200"></td></tr>
    <tr><td align ="center" >姓名</td><td><asp:DropDownList ID ="droplist" runat ="server" ></asp:DropDownList></td></tr>
    <tr><td>用户类型</td><td><asp:DropDownList ID ="droplist1" runat ="server" >
     <asp:ListItem >最高管理者</asp:ListItem>
    <asp:ListItem >高级管理者</asp:ListItem>
    <asp:ListItem >二级管理者</asp:ListItem>
    <asp:ListItem >一般用户</asp:ListItem></asp:DropDownList></td></tr>
    <tr><td></td><td><asp:Button ID ="button1" OnClick ="button1_click" runat ="server" Text ="修改" /><asp:Button ID ="button2" OnClick ="button2_click" runat ="server" Text ="删除" /></td></tr>
     
</table>
    </div>
    </form>
</body>
</html>
我单独运行没有错误,但是我这个页面是一个大网站中的一个页面,放到网站中通过菜单打开这个页面就不可以了,不管按确定还是取消都会删除用户,不知道为什么
--------------------编程问答-------------------- 建议你设断点仔细跟踪检查一下,不行也可以试试笨办法。
button2.Attributes.Add("onclick", "onClientClick()"); 

JS:
function onClientClick()
{
    document.getElementById("Hidden1").value = confirm("确定删除?"); 
}

不要return,写一个JS方法,在页面上加一个Hidden的控件Hidden1,记录下confirm返回的值,确定为True,取消为false.

然后在protected void button2_click(object sender, EventArgs e) 的事件中,首先取出Hidden的值,判断

if(Hidden1.Value.Equals("false"))
return;
else
{
删除数据......
}

        
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,