zoukankan      html  css  js  c++  java
  • GridView中的CheckBox选中 (JQuery)

    JQuery验证GridView中是否有CheckBox被选中

        在GirdView中使用CheckBox,通常我们使用后台代码的方式判断是否至少有一个CheckBox是选中的状态。但是,这种验证在客户端的脚本中将更加容易实现,而且,页面的效果也非常好。网上有很多解决方案,以下提供我的解决方案,部分代码来源网上,经过我的修改和测试,很好用。“拿来主义”,忘了代码是在哪找到的,希望原作者谅解。

    这是主要的实现代码:

        <script type="text/javascript" language="javascript" src="../Scripts/jquery-1.4.1.min.js"></script>
            <script type="text/javascript">
                $(document).ready(function () {
                    var gridView1Control = document.getElementById('<%= GridView1.ClientID %>');
                    var DataKeyName = " ";
                    //Get all of the checked item in the GridView
                    $('#<%= cmdGetData.ClientID %>').click(function (e) {
                        //alert($('input:checkbox[id*=chkSelect]:checked').size());
                        var DataKeyName = "";
                        $('input:checkbox[id*=chkSelect]:checked', gridView1Control).each(function (item, index) {
                            if (DataKeyName == "") {
                                DataKeyName = $(this).next('input:hidden[id*=IDVal]').val();
                            }
                            else {
                                DataKeyName += "," + $(this).next('input:hidden[id*=IDVal]').val();
                            }
                        });
                        if ( DataKeyName == "" || DataKeyName ==","){
                            alert("No items are checked!");
                        }
                        else{
                            alert(DataKeyName);
                        }
                        return false;
                    });
                });
            </script>
    html
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Gridview CheckBox</title>
        <script type="text/javascript" language="javascript" src="../Scripts/jquery-1.4.1.min.js"></script>
            <script type="text/javascript">
                $(document).ready(function () {
                    var gridView1Control = document.getElementById('<%= GridView1.ClientID %>');
                    var DataKeyName = " ";
                    //Get all of the checked item in the GridView
                    $('#<%= cmdGetData.ClientID %>').click(function (e) {
                        //alert($('input:checkbox[id*=chkSelect]:checked').size());
                        var DataKeyName = "";
                        $('input:checkbox[id*=chkSelect]:checked', gridView1Control).each(function (item, index) {
                            if (DataKeyName == "") {
                                DataKeyName = $(this).next('input:hidden[id*=IDVal]').val();
                            }
                            else {
                                DataKeyName += "," + $(this).next('input:hidden[id*=IDVal]').val();
                            }
                        });
                        if ( DataKeyName == "" || DataKeyName ==","){
                            alert("No items are checked!");
                        }
                        else{
                            alert(DataKeyName);
                        }
    
                        return false;
                    });
                });
            </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div style=" text-align:center;">
        <h1>Gridview using CheckBox</h1>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" DataKeyNames="ID" HorizontalAlign="Center" >  
        <Columns>  
            <asp:TemplateField>  
                <ItemTemplate>  
                    <asp:CheckBox ID="chkSelect" runat="server" />  
                    <asp:HiddenField ID="IDVal" runat="server" Value='<%# Eval("ID") %>' />  
                </ItemTemplate>  
            </asp:TemplateField>  
            <asp:TemplateField>  
                <HeaderTemplate>  
                    Name  
                </HeaderTemplate>  
                <ItemTemplate>  
                    <asp:Label ID="Label1" runat="server" Text='<%# Eval("Name") %>'></asp:Label>  
                </ItemTemplate>  
            </asp:TemplateField>  
        </Columns>  
    </asp:GridView>
    <asp:Button ID="cmdGetData" runat="server" Text="Get Data" />   
        </div>
        </form>
    </body>
    </html>
    vb.net
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Dim dt As New DataTable()
            dt.Columns.Add("ID")
            dt.Columns.Add("Name")
    
            Dim oItem As DataRow
            oItem = dt.NewRow()
            oItem.Item("ID") = "1"
            oItem.Item("Name") = "Shawpnendu Bikash Maloroy"
            dt.Rows.Add(oItem)
    
            oItem = dt.NewRow()
            oItem.Item("ID") = "2"
            oItem.Item("Name") = "Bimalendu Bikash Maloroy"
            dt.Rows.Add(oItem)
    
            oItem = dt.NewRow()
            oItem.Item("ID") = "3"
            oItem.Item("Name") = "Purnendu Bikash Maloroy"
    
            dt.Rows.Add(oItem)
    
            GridView1.DataSource = dt
            GridView1.DataBind()
        End Sub

    希望本篇文章对你有用

    Happy Programming!!!

  • 相关阅读:
    利用Spring MVC 上传图片文件
    HdU 4046 Panda 段树
    unity3D的FingerGestures小工具
    深入了解java同步、锁紧机构
    _00021 尼娜抹微笑伊拉克_谁的的最离奇的异常第二阶段 Jedis pool.returnResource(jedis)
    【从翻译mos文章】正在实施的获取job的 session id
    找呀志_通过开源框架引AsyncHttpClient上传文件
    [LeetCode]Count and Say
    使用Intent启动组件
    cpe移植framework后,。解决问题的现有数据库
  • 原文地址:https://www.cnblogs.com/Dannier/p/2456718.html
Copyright © 2011-2022 走看看