我在gridview 里面放了一个checkbox,外面放了一个删除的Button, 我想通过选中的行,来选择删除,但要求删除前有提示,
代码:   protected void ButtonDelAll_Click(object sender, EventArgs e)
        {            for (int i = 0; i <= GVInternshipNews.Rows.Count - 1; i++)
            {
                CheckBox cb = (CheckBox)GVInternshipNews.Rows[i].FindControl("CheckBoxSelect");
                if (cb.Checked)
                {
                    this.ButtonDelAll.Attributes.Add("OnClick", "return confirm('确定要删除这条记录吗?');");
                    string guid = this.GVInternshipNews.DataKeys[i]["Guid"].ToString();
                    dalIntership.DeleteInternshipGuid(guid);
                }
            }
            GridviewBind();        }
问题是,我第一次选择一个,点删除按钮,它没有提示语弹出,只有等我第二次删除才会有提示?
请问 这是为什么啊,怎么解决?

解决方案 »

  1.   

    你在noclientclick里面写你要弹出的对话框试一下
      

  2.   


    protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //查询并显示数据
                Query();
                //给“删除”按钮增加确认提示
                ButtonDelete.Attributes.Add("onClick", "Javascript:if (confirm('您真的要删除选中纪录吗?')!=1){return false}");            
            }
        }
      

  3.   

    为什么要放在 Page_Load里面啊???
    我的整个选择删除是放在Button 的事件里面的 啊
      

  4.   

    加在page_Load 只是这句话。this.ButtonDelAll.Attributes.Add("OnClick", "return confirm('确定要删除这条记录吗?');");给del按钮增加脚本事件 onclick  
      

  5.   

    这句话我要在选中checkbox 之后,点击删除Button的才提示出来啊。如果没有选中checkbox,就不要提示啊
      

  6.   

    ClientScript.RegisterStartupScript(this.GetType(), "PleaseCheck", "if(confirm('确定删除吗'))document.getElementById('hf').value='1';else 
    document.getElementById('hf').value='0;",true);  
    if(hf.value.Equals("1")) 
    { } 
      

  7.   

    学习中 为什么要要在Page_Load里呢 我也不知道 
      

  8.   

    因为你在ButtonDelAll_Click事件里加这句话this.ButtonDelAll.Attributes.Add("OnClick", "return confirm('确定要删除这条记录吗?');");
    那么只有在点击ButtonDelAll之后,ButtonDelAll才会有这个属性,所以下一次点击才能弹出提示,在if (!IsPostBack)里加这句话,那你点ButtonDelAll之前,它就有了这个属性。
            
      

  9.   

    我觉得楼上的思路是跟我的一样,但是我用js怎么在判断是否我就选中了checkbox那一行呢
    还有10楼的朋友方法是正确的,但是在checkbox里面没有value 这个属性吧
      

  10.   

        
      function choseDel() {
         debugger            
        var count = 0;  //用来判断当前选择了几行
        var objs=document.getElementsById("<%#GVInternshipNews.ClientID%>").getElementsByTagName("input"); 
         //用JavaScript DOM的document.all可以获取到页面上所有元素,继而去获取到GridView
          for (var i = 1; i < objs.length; i++) {
            //条件是从该GridView得第2行开始,小于它的行的总数,因为该GridView控件有表头一行
              if (objs[i].type=="checked") {
                 //获取到GridView1第i行0列的checkbox控件,判断它的checked属性
                    count++;
                      return confirm('确定要删除这条记录吗?');                
                 }
                   else
                   {
                      alert('请选择你要删除的数据!');
                   }
               }
             }
     var objs=document.getElementsById("<%#GVInternshipNews.ClientID%>").getElementsByTagName("input");为什么说这句错误?
      

  11.   

    var objs=document.getElementsById(" <%=GVInternshipNews.ClientID%>").getElementsByTagName("input");
      

  12.   

    直接在aspx 文件里 写。。onclientClick='return confirm("你要删除吗?")'
      

  13.   

    2楼的方法,可以做到在选择第一个的时候能弹出提示信息,但是在我都不选择的时候,直接点击删除按钮,它也能弹出提示信息啊,这个没有必要,应该在没有选择checkbox的时候,当我再点击删除按钮的时候,应该弹出的是请选择要删除的信息啊???
      

  14.   


    此方法无法根据判断去控制,我测试过,在还未出现对话框这前,已经执行了
    if(hf.value.Equals("1"))
    {
      //在还未出现对话框这前,已经执行了
    }
    是什么问题?请指教
      

  15.   


    <asp:Button ID="btnPass2" runat="server" Text="批量通过" OnClick="btnPass1_Click" OnClientClick="confirm('确定要删除这条记录吗?')" />&nbsp;&nbsp;
      

  16.   

    http://blog.csdn.net/xianfajushi/archive/2008/11/30/3413317.aspx
      

  17.   

    在页面中写吧
    试一下!
       <asp:Button ID="btnDel" runat="server"                                                     OnClick="btnDel_Click" ToolTip="删除" OnClientClick=" return confirm('您确认删除吗?');" />
      

  18.   

    还是我来贴代码吧,保证能用
    页面上要有一个全选复选框,不然自己修改相应代码吧//===============================================
    // 判断checkbox是否中数据
    // 【输入参数】删除按钮,一条都没有选择点删除的提示语句,删除确认提示,全选复选框
    // 【返回值】无
    // 【作成者】
    // 【概要】 判断checkbox是否中数据
    //===============================================
    function IsCheckSelect(btnDelete,selectMsg,deleteMsg,chkSelectAll)
    {            
        //获得form中所有的子控件    chkElmements = btnDelete.form.elements;    for( i=0 ; i < chkElmements.length ; i++ )
        {
            //如果控件类型是checkbox,且不是全选按钮,且为选中状态        if( chkElmements[i].type == "checkbox"  && chkElmements[i].checked == true 
            && chkElmements[i].id != chkSelectAll )
            {                         
                    return confirm(deleteMsg);                       
            }
        }    //如果没有选中任何一条数据,提示信息,并不执行后台代码    window.alert(selectMsg);
        
        return false; 
    }后台可以这么绑定这个方法//注册“删除”按钮的提示脚本事件 提示MSG:请至少选择一条数据 和 是否删除数据
    string strJsDel = "javascript:event.returnValue = IsCheckSelect("
                 + this.btnDel.ClientID + ",'至少选择一条数据','是否进行删除操作','"
                + ckAll.ClientID + "');";
    btnDel.OnClientClick = strJsDel;
      

  19.   

    wsm 为什么我照着二十久楼的写法 ,能提示是能提示了为什么 却删除不了