在DataGrid控件中,有一列是模板列(为多选按钮),同时还有一个Button按钮,我想实现单击Button,如果多选按钮这一列中没有一个选择,那就用JavaScript提示"请选择",如果有选择,那就是提示"是否真得确定删除".我用this.btnMulDel.Attributes.Add("onclick", "return confirm('确认删除吗?');");实现了删除的判定,请问大家如果没有选择的话,如何用JavaScript判定,谢谢!

解决方案 »

  1.   

    javaScript不熟悉,以下是我在gridview中判断模板列多选按钮的例子,希望对楼主有帮助:
    CheckBox chk;
    for (int i = 0; i < this.GridView1.Rows.Count; i++)
    {
          chk = (CheckBox)this.GridView1.Rows[i].FindControl("CheckBox1");
          if (chk.Checked == false)
          {
              chk.Checked = true;
          }
    }以上的代码的功能是,选中所有checkbox
      

  2.   

    这个很简单啊JS :思路是这样的 语法你在去看看
    this.btnMulDel.Attributes.Add("onclick", 
    "CheckNum(gridviewId) "CheckNum(gridviewId)
    {
        var flag=false;
        var check=gridviewId.getEleementByTags("Check");
        for(var i=0;i<check.length;i++)
        {
         if(check[i].checked==true)
          {
            flag=true;
          }
        }
       if(flag)
        {   return confirm('确认删除吗?');
        }
       else
        {
           window.alert('请选择要删除的数据');
           return false;
        }       
        
    }
      

  3.   

    有点小错误: 
    this.btnMulDel.Attributes.Add("onclick", 
    " return CheckNum(gridviewId) " 
      

  4.   

    上面两种方法取不到checkbox下面代码经过测试,肯定没问题!
    default.aspx<script>
    function checkchk()
    {
        var inputs =document .getElementById ("<%=GridView1.clientID%>").getElementsByTagName("input");
        //下面语句取不到 checkbox
        //var inputs=gridview1.getEleementByTags("Check");
        //var inputs=(CheckBox)this.GridView1.Rows[i].FindControl("CheckBox1");
        var j=0;
        for(var i=0;i<inputs.length ;i++)
        {
            if(inputs [i].type=="checkbox" & inputs[i].checked==true)
            {
                j=j+1;
            }
        }
        if( j==0 )
        {
        alert('没有选中任何数据!');
        }
        else
        {
        confirm('确认删除吗?');
        }
    }
    </script>
    完整代码<%@ Page Language="VB" 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>
    function checkchk()
    {
        var inputs =document .getElementById ("<%=GridView1.clientID%>").getElementsByTagName("input");
        //下面语句取不到 checkbox
        //var inputs=gridview1.getEleementByTags("Check");
        //var inputs=(CheckBox)this.GridView1.Rows[i].FindControl("CheckBox1");
        var j=0;
        for(var i=0;i<inputs.length ;i++)
        {
            if(inputs [i].type=="checkbox" & inputs[i].checked==true)
            {
                j=j+1;
            }
        }
        if( j==0 )
        {
        alert('没有选中任何数据!');
        }
        else
        {
        confirm('确认删除吗?');
        }
    }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        
            <asp:GridView ID="GridView1" runat="server">
                <Columns>
                    <asp:TemplateField>
                        <EditItemTemplate>
                            <asp:CheckBox ID="CheckBox1" runat="server" />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:CheckBox ID="CheckBox1" runat="server" />
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
        
            <asp:Button ID="Button1" runat="server" Text="Button"  UseSubmitBehavior="False" />
        
        </div>
        </form>
    </body>
    </html>
    default.aspx.vbImports System.Data
    Partial Class _Default
        Inherits System.Web.UI.Page    Protected Sub form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles form1.Load
            Dim ds As New DataSet
            ds.Tables.Add("namelist")
            ds.Tables(0).Columns.Add("ID", GetType(Int32))
            ds.Tables(0).Columns.Add("Name", GetType(String))
            'ds.Tables(0).Columns.Add("c", GetType(Boolean))
            ds.Tables(0).Rows.Add(New Object() {1, "张三"})
            ds.Tables(0).Rows.Add(New Object() {2, "李四"})
            ds.Tables(0).Rows.Add(New Object() {3, "王二"})
            ds.Tables(0).Rows.Add(New Object() {4, "麻子"})        GridView1.Width = "600"        GridView1.DataSource = ds
            GridView1.DataBind()        Button1.Attributes.Add("onclick", "return checkchk();")
        End Sub
    End Class
      

  5.   

    default.aspx里面有两处需要修改button1里面UseSubmitBehavior="False"的属性去掉,否则页面无法提交
    alert('没有选中任何数据!');下面添加return false;否则页面在没有选中数据时仍然会提交!
      

  6.   

    function HasSelect()
    {      if(document.getElementsByTagName('hf_Id').value ==''||document.getElementsByTagName('hf_Id').value == "")
        {
            alert("您至少选则一项才可以继续操作!");
        
            return false;    
        
        }  
        else
            return true;
    }
    function IsDel()
    {
        return confirm("是否删除您选择的记录?");
    }function checkAll(name)
        {     
            var el = document.getElementsByTagName('input');    
            var len = el.length;     
            for(var i=0; i<len; i++)    
            { 
                if((el[i].type=="checkbox"))       
                    {  
                        el[i].checked = document.getElementById(name).checked;
                    }
            }
        }
      

  7.   

    按照你的方法,出现错误.
    <%=GridView1.clientID%>
    请问这个是什么意思?
    我用得是DataGrid控件.谢谢!