如何在一段代码中写一个弹出确认框的代码,再根据确认框返回的值,分别执行哪几行代码?如:在一个gridview中有个checkbox,选中时,执行一段代码,不选中时,弹出确认框,如果确认框中点的确定又相应的执行一段代码,点取消,刚跳出这个事件过程。谢谢。

解决方案 »

  1.   

    //绑定删除确认对话框
        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {       
            LinkButton linkButton = (LinkButton) e.Row.FindControl("LinkButton2");       
            if (linkButton != null)
                linkButton.Attributes.Add("OnClick", "return   confirm('确认删除?')");  
        }类似,请借鉴下吧,我有点累了.
      

  2.   

    在网页里面是实现不了的.在javascript里才行
      

  3.   


    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="GridView.aspx.cs" Inherits="aaaa_GridView" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
        <script language="javascript"  type="text/javascript">
        function change(obj)
        {
            if(obj.checked)
                document.getElementById('btnOne').click();
            else
            {
                if(confirm('是否继续执行?'))
                    document.getElementById('btnTwo').click();
                else
                    return false;
            }
        }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:GridView ID="gv" runat="server" AutoGenerateColumns="False">
            <Columns>
            <asp:TemplateField HeaderText="选择">
                <ItemTemplate>                
                    <asp:CheckBox ID="ckb" runat="server"  onclick="change(this);"/>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField DataField="Name" HeaderText="名称" />
            <asp:BoundField DataField="Unit" HeaderText="单位"/>
            <asp:BoundField DataField="Standard" HeaderText="规格"/>
            <asp:BoundField DataField="Quantity" HeaderText="数量"/>
            </Columns>
            </asp:GridView>
            <asp:DropDownList ID="ddl" runat="server">
            </asp:DropDownList>
            <asp:Button ID="btnOne" runat="server" Width="0px" OnClick="btnOne_Click" />
            <asp:Button ID="btnTwo" runat="server" Width="0px" OnClick="btnTwo_Click" />        </div>
        </form>
    </body>
    </html>
      

  4.   


    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;public partial class aaaa_GridView : System.Web.UI.Page
    {
        protected DataTable getDataTable()
        {        System.Data.DataTable dt = new System.Data.DataTable();
            System.Data.DataRow dr;
            dt.Columns.Add(new System.Data.DataColumn("Name", typeof(System.String)));
            dt.Columns.Add(new System.Data.DataColumn("Unit", typeof(System.String)));
            dt.Columns.Add(new System.Data.DataColumn("Standard", typeof(System.String)));
            dt.Columns.Add(new System.Data.DataColumn("Quantity", typeof(System.Int32)));
            dr = dt.NewRow();
            dr[0] = "黑色圆珠笔";
            dr[1] = "枝";
            dr[2] = "2*2";
            dr[3] = 10;
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr[0] = "红色圆珠笔";
            dr[1] = "枝";
            dr[2] = "2*2";
            dr[3] = 15;
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr[0] = "黄色圆珠笔";
            dr[1] = "枝";
            dr[2] = "2*2";
            dr[3] = 20;
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr[0] = "蓝色圆珠笔";
            dr[1] = "枝";
            dr[2] = "2*2";
            dr[3] = 18;
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr[0] = "辰光签字笔";
            dr[1] = "枝";
            dr[2] = "2*2";
            dr[3] = 15;
            dt.Rows.Add(dr);
            return dt;
        }    private void ddlDataBind(DataTable dt)
        {
            for (int i=0; i < dt.Rows.Count; i++)
            {
                ddl.Items.Add(new ListItem("名称: " + dt.Rows[i]["Name"].ToString() + " 规格: " + dt.Rows[i]["Standard"].ToString(), dt.Rows[i]["Quantity"].ToString()));
            }
        }    protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                gv.DataSource = getDataTable();
                gv.DataBind();
                ddlDataBind(getDataTable());
            }        
        }
        
        protected void btnOne_Click(object sender, EventArgs e)
        {
            Response.Write("<script>alert('checked=true')</script>");
        }
        protected void btnTwo_Click(object sender, EventArgs e)
        {
            Response.Write("<script>alert('confirm=true')</script>");
        }
    }
      

  5.   

    怎么btnOne_Click,btnTwo_Click  没执行啊?我把这两个控件放模块里了,和checkbox放一起。因为点击checkbox时,我要得到这一行的行号。是不是不能放模块里啊?
      

  6.   

    <%@ Page Language="VB"  EnableEventValidation="false" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
        <script language="javascript"  type="text/javascript">
        function change(obj)
        {
            if(obj.checked)
                document.getElementById('btnOne').click();
            else
            {
                if(confirm('是否继续执行?'))
                    document.getElementById('btnTwo').click();
                else
                    return false;
            }
        }
        </script>    
    </head>
    <body> 
        <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="TxtB_yjm" runat="server"></asp:TextBox>
            <asp:TextBox ID="TxtB_ejm" runat="server" Width="298px"></asp:TextBox>
            &nbsp; &nbsp;&nbsp;
            <asp:Button ID="Button1" runat="server" Text="确定" />
           
            
        <table border="1"><tr> <td  valign ="top" ><asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" DataKeyNames="一级编码">
          <Columns>
                    <asp:BoundField DataField="一级编码" HeaderText="一级编码" SortExpression="一级编码" />
                    <asp:TemplateField HeaderText="一级科目" SortExpression="一级科目">
                        <EditItemTemplate>
                            <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("一级科目") %>'></asp:TextBox>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="Label1" runat="server" Text='<%# Bind("一级科目") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    
                     <asp:TemplateField HeaderText="运算符号">      
                       
                        <ItemTemplate>
                           <asp:DropDownList ID="DDL_ysgx"
                                runat="server" AutoPostBack ="true" OnSelectedIndexChanged="DDL_ysgx_SelectedIndexChanged">
                                <asp:ListItem Selected="True"  Text="" Value=""></asp:ListItem>
                                 <asp:ListItem  Text="+" Value="+"></asp:ListItem>
                                <asp:ListItem  Text="-" Value="-"></asp:ListItem>
                                <asp:ListItem  Text="*" Value="*"></asp:ListItem>
                                <asp:ListItem  Text="/" Value="/"></asp:ListItem>
                            </asp:DropDownList>
                        </ItemTemplate>
                    </asp:TemplateField>
                    
                    <asp:TemplateField HeaderText="选择">
                        <ItemTemplate>
                            <asp:CheckBox ID="CheckBox1" runat="server"  AutoPostBack="true"  onclick="change(this);" />
                             <asp:Button ID="btnOne" runat="server" Width="2px" OnClick="btnOne_Click" />
                             <asp:Button ID="btnTwo" runat="server" Width="2px" OnClick="btnTwo_Click" />
                        </ItemTemplate>
                    </asp:TemplateField>
                   <asp:TemplateField>
                        <ItemTemplate>
                            
                            <asp:LinkButton ID="Btn_xugai" runat="server" OnClick="Btn_xugai_Click">选择</asp:LinkButton>
                        </ItemTemplate>
                    </asp:TemplateField>
                   
                    
          </Columns>
            </asp:GridView>
            
            </td><td  valign="top">
            <asp:GridView ID="GridView2" runat="server" EmptyDataText="没有相应的二级科目!" AutoGenerateColumns="false" >
            <Columns>
                <asp:BoundField DataField="二级编码" HeaderText="二级编码" SortExpression="二级编码" />
                    <asp:TemplateField HeaderText="二级科目" SortExpression="二级科目">
                        <EditItemTemplate>
                            <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("二级科目") %>'></asp:TextBox>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="Label1" runat="server" Text='<%# Bind("二级科目") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                     <asp:TemplateField HeaderText="运算符号">      
                       
                        <ItemTemplate>
                           <asp:DropDownList ID="DDL_ysgx"
                                runat="server" AutoPostBack ="false" OnSelectedIndexChanged="DDL_ysgx_SelectedIndexChanged">
                                <asp:ListItem Selected="True"  Text="" Value=""></asp:ListItem>
                                 <asp:ListItem  Text="+" Value="+"></asp:ListItem>
                                <asp:ListItem  Text="-" Value="-"></asp:ListItem>
                                <asp:ListItem  Text="*" Value="*"></asp:ListItem>
                                <asp:ListItem  Text="/" Value="/"></asp:ListItem>
                            </asp:DropDownList>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="选择">
                        <EditItemTemplate>
                            <asp:CheckBox ID="CheckBox1" runat="server"/>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:CheckBox ID="CheckBox1" runat="server"  AutoPostBack="true" OnCheckedChanged="CheckBox1_CheckedChanged1" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    </Columns>
            </asp:GridView></td></tr></table>
     
            
         
        </div>
        
       <input type="hidden" id="hidConfirm" name="hidConfirm" /> 
            <asp:Button ID="Button2" runat="server" Text="Button" />
            <asp:TextBox ID="TxtB00" runat="server"></asp:TextBox>    </form>
    </body><script language ="javascript">
    function lk()
    {
    if( confirm("xx") ) 

     document.getElementById('hidConfirm').value = '1' 

    else 

     document.getElementById('hidConfirm').value = '0' 
    } }
    </script></html>
      

  7.   

    Partial Class _Default
        Inherits System.Web.UI.Page
        Dim myconnectionstr As String = System.Configuration.ConfigurationManager.ConnectionStrings("cw_cbConnectionString").ConnectionString
        Dim myconn As New SqlConnection(myconnectionstr)
        Dim myadapter As New SqlDataAdapter
        Dim myadapter2 As New SqlDataAdapter    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            If Not IsPostBack Then
                myconn.Open()
                Dim sqlstr As String = "select distinct rtrim(ltrim(一级编码)) as 一级编码 ,一级科目 from zdk"
                myadapter = New SqlDataAdapter(sqlstr, myconnectionstr)
                Dim myds As New DataSet
                myadapter.Fill(myds)
                Me.GridView1.DataSource = myds
                Me.GridView1.DataBind()
                myconn.Close()                  End If
        End Sub
        Protected Sub btnTwo_Click(ByVal sender As Object, ByVal e As System.EventArgs)        Dim oButton As Button
            Dim oGridViewRow As GridViewRow
            Dim iRowIndex As Integer        oButton = CType(sender, Button)
            '取得控制項所屬性 GridViewRow
            oGridViewRow = CType(oButton.BindingContainer, GridViewRow)        '取得目前 GridViewRow 的索引
            iRowIndex = oGridViewRow.RowIndex
            Dim tmpyjm As String = GridView1.Rows(iRowIndex).Cells(0).Text
            'Dim stryjm As String
            '以下显示出相应的二级编码        'myconn.Open()
            'Dim sqlstr As String = "select distinct rtrim(ltrim(二级编码)) as 二级编码,二级科目 from zdk where 一级编码='" & tmpyjm & "'"
            'myadapter2 = New SqlDataAdapter(sqlstr, myconnectionstr)
            'Dim myds2 As New DataSet
            'myadapter2.Fill(myds2)
            'Me.GridView2.DataSource = myds2
            'Me.GridView2.DataBind()
            ' myconn.Close()
            '以上显示出相应的二级编码
            ' Dim ll As Integer
            ' Response.Write("m=" & Request.Form("hidConfirm"))
            ' If (Request.Form("hidConfirm")) = "1" Then        'Response.Write("表示客户端 点了 OK ")        ' Else
            ' Response.Write("m=" & Request.Form("hidConfirm"))
            'Response.Write("表示客户端 点了 Cancel 或 没有点 ")
            ' End If        Me.GridView2.Visible = False
            '  CType(GridView1.Rows(iRowIndex).Cells(3).FindControl("CheckBox1"), CheckBox).Attributes.Add("onclick", "JavaScript:return confirm('真的准备删除吗?')")
            CType(GridView1.Rows(iRowIndex).Cells(3).FindControl("DDL_ysgx"), DropDownList).Enabled = True
            '没选一级编码,二级编码不能选择        ' For ll = 0 To Me.GridView2.Rows.Count - 1
            ' CType(GridView2.Rows(ll).Cells(2).FindControl("CheckBox1"), CheckBox).Enabled = False
            ' Next        '删除该一级编码对应的所有二级编码
            Dim aa As Integer, bb As Integer
            Dim j As Integer, str_ejm As String, array() As String, array2() As String, str1 As String, str2 As String
            j = Len(Trim(TxtB_yjm.Text)) / 6 '一级编码加上运算符号加上“/”共6位 ,得出有多少个一级编码
            array = TxtB_yjm.Text.Split("/")  '得出以/为分隔符的字符串数组
            For aa = 0 To j
                If Right(Trim(array(aa)), Len(Trim(array(aa))) - 1) = tmpyjm Then
                    bb = aa + 1  '得出相应要删除的二级编码是数组中的哪个元素
                    'Response.Write(array(aa))
                    Exit For
                End If
            Next
            array2 = TxtB_ejm.Text.Split("n")        str_ejm = array2(bb)  '得出要删除的二级编码字符串
            str1 = ""
            str2 = ""
            Dim cc As Integer, dd As Integer
            For cc = 1 To bb - 1
                str1 = str1 & "n" & array2(cc)
            Next
            For dd = bb + 1 To j
                str2 = str2 & "n" & array2(dd)
            Next
            'str1 = Left(Trim(str1), Len(Trim(str1)) - 1)
            TxtB_ejm.Text = str1 & str2
            '删除该一级编码        CType(GridView1.Rows(iRowIndex).Cells(3).FindControl("DDL_ysgx"), DropDownList).SelectedValue = ""
            Dim delyjm As String, i As Integer
            i = TxtB_yjm.Text.IndexOf(tmpyjm) - 1
            delyjm = TxtB_yjm.Text.Substring(i, Len(tmpyjm) + 2)
            TxtB_yjm.Text = TxtB_yjm.Text.Replace(delyjm, "")
        End Sub    Protected Sub btnOne_Click(ByVal sender As Object, ByVal e As System.EventArgs)        Dim oButton As Button
            Dim oGridViewRow As GridViewRow
            Dim iRowIndex As Integer        oButton = CType(sender, Button)
            '取得控制項所屬性 GridViewRow
            oGridViewRow = CType(oButton.BindingContainer, GridViewRow)        '取得目前 GridViewRow 的索引
            iRowIndex = oGridViewRow.RowIndex
            Dim tmpyjm As String = GridView1.Rows(iRowIndex).Cells(0).Text
            Dim stryjm As String
            '以下显示出相应的二级编码        'myconn.Open()
            'Dim sqlstr As String = "select distinct rtrim(ltrim(二级编码)) as 二级编码,二级科目 from zdk where 一级编码='" & tmpyjm & "'"
            'myadapter2 = New SqlDataAdapter(sqlstr, myconnectionstr)
            'Dim myds2 As New DataSet
            'myadapter2.Fill(myds2)
            'Me.GridView2.DataSource = myds2
            'Me.GridView2.DataBind()
            ' myconn.Close()
            '以上显示出相应的二级编码
            ' Dim ll As Integer        ' If CType(GridView1.Rows(iRowIndex).Cells(2).FindControl("CheckBox1"), CheckBox).Checked = True Then
            ' Me.GridView2.Visible = True        CType(GridView1.Rows(iRowIndex).Cells(3).FindControl("DDL_ysgx"), DropDownList).Enabled = False        If CType(GridView1.Rows(iRowIndex).Cells(3).FindControl("DDL_ysgx"), DropDownList).SelectedValue = "" Then            stryjm = "+" & tmpyjm
            Else
                stryjm = CType(GridView1.Rows(iRowIndex).Cells(3).FindControl("DDL_ysgx"), DropDownList).SelectedValue & tmpyjm    '默认是加号
            End If
            TxtB_yjm.Text = TxtB_yjm.Text & stryjm & "/"
            'If TxtB_ejm.Text <> "" Then
            TxtB_ejm.Text = TxtB_ejm.Text & "n"
            ' End If        ' For ll = 0 To Me.GridView2.Rows.Count - 1
            ' CType(GridView2.Rows(ll).Cells(3).FindControl("CheckBox1"), CheckBox).Enabled = True
            ' Next
            'Else
            '==================================================        ' End If
        End SubEnd Class
      

  8.   

     Protected Sub btnTwo_Click(ByVal sender As Object, ByVal e As System.EventArgs)        Dim oButton As Button
            Dim oGridViewRow As GridViewRow
            Dim iRowIndex As Integer        oButton = CType(sender, Button)
            '取得控制項所屬性 GridViewRow
            oGridViewRow = CType(oButton.BindingContainer, GridViewRow)        '取得目前 GridViewRow 的索引
            iRowIndex = oGridViewRow.RowIndex
            Dim tmpyjm As String = GridView1.Rows(iRowIndex).Cells(0).Text
            Me.GridView2.Visible = False
            CType(GridView1.Rows(iRowIndex).Cells(3).FindControl("DDL_ysgx"), DropDownList).Enabled = True
            Dim aa As Integer, bb As Integer
            Dim j As Integer, str_ejm As String, array() As String, array2() As String, str1 As String, str2 As String
            j = Len(Trim(TxtB_yjm.Text)) / 6 '一级编码加上运算符号加上“/”共6位 ,得出有多少个一级编码
            array = TxtB_yjm.Text.Split("/")  '得出以/为分隔符的字符串数组
            For aa = 0 To j
                If Right(Trim(array(aa)), Len(Trim(array(aa))) - 1) = tmpyjm Then
                    bb = aa + 1  '得出相应要删除的二级编码是数组中的哪个元素
                    'Response.Write(array(aa))
                    Exit For
                End If
            Next
            array2 = TxtB_ejm.Text.Split("n")        str_ejm = array2(bb)  '得出要删除的二级编码字符串
            str1 = ""
            str2 = ""
            Dim cc As Integer, dd As Integer
            For cc = 1 To bb - 1
                str1 = str1 & "n" & array2(cc)
            Next
            For dd = bb + 1 To j
                str2 = str2 & "n" & array2(dd)
            Next
            'str1 = Left(Trim(str1), Len(Trim(str1)) - 1)
            TxtB_ejm.Text = str1 & str2        CType(GridView1.Rows(iRowIndex).Cells(3).FindControl("DDL_ysgx"), DropDownList).SelectedValue = ""
            Dim delyjm As String, i As Integer
            i = TxtB_yjm.Text.IndexOf(tmpyjm) - 1
            delyjm = TxtB_yjm.Text.Substring(i, Len(tmpyjm) + 2)
            TxtB_yjm.Text = TxtB_yjm.Text.Replace(delyjm, "")
        End Sub    Protected Sub btnOne_Click(ByVal sender As Object, ByVal e As System.EventArgs)        Dim oButton As Button
            Dim oGridViewRow As GridViewRow
            Dim iRowIndex As Integer        oButton = CType(sender, Button)
            '取得控制項所屬性 GridViewRow
            oGridViewRow = CType(oButton.BindingContainer, GridViewRow)        '取得目前 GridViewRow 的索引
            iRowIndex = oGridViewRow.RowIndex
            Dim tmpyjm As String = GridView1.Rows(iRowIndex).Cells(0).Text
            Dim stryjm As String
           
            CType(GridView1.Rows(iRowIndex).Cells(3).FindControl("DDL_ysgx"), DropDownList).Enabled = False        If CType(GridView1.Rows(iRowIndex).Cells(3).FindControl("DDL_ysgx"), DropDownList).SelectedValue = "" Then            stryjm = "+" & tmpyjm
            Else
                stryjm = CType(GridView1.Rows(iRowIndex).Cells(3).FindControl("DDL_ysgx"), DropDownList).SelectedValue & tmpyjm    '默认是加号
            End If
            TxtB_yjm.Text = TxtB_yjm.Text & stryjm & "/"        TxtB_ejm.Text = TxtB_ejm.Text & "n"
           
        End Sub
      

  9.   


     <asp:CheckBox ID="CheckBox1" runat="server"  AutoPostBack="true"  onclick="change(this);" /> AutoPostBack="true"
    把它去了
      

  10.   

    我试了你的那个,你的可以,可我实在不知道我的错在哪,和你的不同的地方好像就是,我把btn_one,btn_two 放gridview的模块里了。是不是真就错在这呢。
      

  11.   


    <script language="javascript"  type="text/javascript">
        function change(obj)
        {                   
            var el=obj.parentNode.getElementsByTagName('input');        
            var btnOne,btnTwo;        
            for(var i=0;i<el.length;i++)
            {            
                if(el[i].type=="submit")
                {                          
                    if(el[i].id.indexOf("btnOne")!=-1)                
                        btnOne=el[i];                
                    else if(el[i].id.indexOf("btnTwo")!=-1)
                        btnTwo=el[i];                                    
                }
            }            
            if(obj.checked)
                btnOne.click();
            else
            {
                if(confirm('是否继续执行?'))
                    btnTwo.click();
                else
                    return false;
            }
        }
        </script>这样就OK了
      

  12.   

      document.getElementById('btnOne').click();
    应该就是这里了,是这样没法找到btnone这个控件,得先找到gridview,然后再在gridview里的某一行找到btnone
    ,请问这句应该怎么写了?