• Jquery实现Gridview全选功能


    Jquery实现Gridview全选功能,用最少的代码实现Gridview全选功能,提供服务端事件和客户端事件。网络已经有很多种方法实现该功能,希望这个方法能对大家有些帮助,同时也是对自己的一种学习记录。

    1.首先要引用Jquery库脚本,我在开发的时候使用的网络版,https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js

    如果自己开发需要可以下载到项目中,然后在引用页是一样可以的。

    2.让GRIDVIEW解析的时候能够显示标准的TABLE结构,就是显示THEAD,TBODY,TFOOT这三个标签,在PreRender事件中设置

     UseAccessibleHeader = true,同时让GridView1.HeaderRow.TableSection = TableRowSection.TableHeader,GridView1.FooterRow.TableSection = TableRowSection.TableFooter;这样GRIDVIEW在解析成HTML后就能按标准TABLE显示。

    代码
    <!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 src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

    </head>
    <body>
      
    <form id="form1" runat="server">
      
    <div>
        
    <asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None"
          AutoGenerateColumns
    ="False" OnPreRender="GridView1_PreRender">
          
    <Columns>
            
    <asp:TemplateField>
              
    <HeaderTemplate>
                
    <input id="chkAll" type="checkbox" /></HeaderTemplate>
              
    <ItemTemplate>
                
    <input id="chkItem" value='<%# Eval("id") %>' runat="server" type="checkbox" />
              
    </ItemTemplate>
            
    </asp:TemplateField>
            
    <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
              SortExpression
    ="id" HeaderStyle-Width="30px" ItemStyle-Width="30px">
              
    <HeaderStyle Width="30px"></HeaderStyle>
              
    <ItemStyle Width="30px"></ItemStyle>
            
    </asp:BoundField>
            
    <asp:BoundField DataField="productid" HeaderText="productid" SortExpression="productid"
              HeaderStyle-Width
    ="120px" ItemStyle-Width="120px">
              
    <HeaderStyle Width="120px"></HeaderStyle>
              
    <ItemStyle Width="120px"></ItemStyle>
            
    </asp:BoundField>
            
    <asp:BoundField DataField="productname" HeaderText="productname" SortExpression="productname"
              HeaderStyle-Width
    ="100px" ItemStyle-Width="100px">
              
    <HeaderStyle Width="100px"></HeaderStyle>
              
    <ItemStyle Width="100px"></ItemStyle>
            
    </asp:BoundField>
            
    <asp:BoundField DataField="categoryid" HeaderText="categoryid" SortExpression="categoryid"
              HeaderStyle-Width
    ="120px" ItemStyle-Width="120px">
              
    <HeaderStyle Width="120px"></HeaderStyle>
              
    <ItemStyle Width="120px"></ItemStyle>
            
    </asp:BoundField>
            
    <asp:BoundField DataField="createtime" HeaderText="createtime" SortExpression="createtime"
              HeaderStyle-Width
    ="150px" ItemStyle-Width="150px">
              
    <HeaderStyle Width="150px"></HeaderStyle>
              
    <ItemStyle Width="150px"></ItemStyle>
            
    </asp:BoundField>
          
    </Columns>
          
    <RowStyle BackColor="#EFF3FB" />
          
    <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
          
    <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
          
    <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
          
    <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
          
    <EditRowStyle BackColor="#2461BF" />
          
    <AlternatingRowStyle BackColor="White" />
        
    </asp:GridView>
      
    </div>
      
    <input id="btnClient" type="button" value="客服端获取选择记录" />
      
    <br />
      
    <asp:Button ID="btnServer" runat="server" Text="服务端获取选择记录" OnClick="btnServer_Click" />
      
    <br />
      
    <asp:TextBox ID="txtResult" runat="server" Height="110px" TextMode="MultiLine" Width="548px"></asp:TextBox>
      
    </form>

      
    <script language="javascript" type="text/javascript">
        $(
    function() {

          
    //全选按钮选择,如果全选按钮为选择状态,遍历GRIDVIEW下面的第一列的CHECKBOX,设置选择状态
          $("#chkAll").click(function() {
            $(
    '#<%=GridView1.ClientID %> >tbody >tr >td >input:checkbox').attr('checked'this.checked);
          });

          
    //遍历GRIDVIEW下面的第一列的CHECKBOX的选择状态如果选中状态和CHECKBOX个数相同则全选为选中状态,否则都为不选中状态
          $('#<%=GridView1.ClientID %> >tbody >tr >td >input:checkbox').click(function() {
            
    var expr1 = '#<%=GridView1.ClientID %> >tbody >tr >td >input:checkbox:checked';
            
    var expr2 = '#<%=GridView1.ClientID %> >tbody >tr >td >input:checkbox';
            
    var selectAll = $(expr1).length == $(expr2).length;
            $(
    '#chkAll').attr('checked', selectAll);
          });

          
    //查找数据列表里面所有选中的记录
          $("#btnClient").click(function() {
            
    var chkList = $("input:checkbox:checked[name$=chkItem]"); //Jquery模糊匹配 [att$=value]结尾是这个值
            var arrayList = new Array();
            
    for (var i = 0; i < chkList.length; i++) {
              arrayList.push(chkList[i].value);
            }
            
    if (arrayList.length > 0) {
              
    var ids = arrayList.join(",");
              alert(ids);
            } 
    else {
              alert(
    "请选择记录!");
            }
          });
        });

      
    </script>

    </body>
    </html>

    后台代码:

    代码
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    namespace SwireBev.Framework {
        
    public partial class JqueryGridView : System.Web.UI.Page {
            
    protected void Page_Load(object sender, EventArgs e)
            {
                
    if (!Page.IsPostBack)
                {
                    
    this.GridView1.DataSource = GetProducts();
                    
    this.GridView1.DataBind();
                }
            }
            
    private ProductCollection GetProducts()
            {
                ProductCollection _pc 
    = new ProductCollection();
                
    for (int i = 1; i < 15; i++)
                {
                    _pc.Add(
                        
    new Product { id = i.ToString(), categoryid = i.ToString(), createtime = System.DateTime.Now.ToString(),
                        productid 
    = i.ToString(), productname = i.ToString() }
                        );
                }
                
    return _pc;

            }
            
    protected void GridView1_PreRender(object sender, EventArgs e)
            {
                
    this.GridView1.UseAccessibleHeader = true;
                
    this.GridView1.HeaderRow.TableSection = TableRowSection.TableHeader;
                
    this.GridView1.FooterRow.TableSection = TableRowSection.TableFooter;
            }

            
    protected void btnServer_Click(object sender, EventArgs e) {
                
    this.txtResult.Text = string.Empty;
                
    if (GridView1.Rows.Count > 0) {
                    
    foreach (GridViewRow row in GridView1.Rows) {
                        HtmlInputCheckBox _chkItem 
    = (HtmlInputCheckBox)row.FindControl("chkItem");
                        
    if (_chkItem != null&&_chkItem.Checked) {
                            
    this.txtResult.Text +=_chkItem.Value+",";
                        }
                    }
                    
    if (this.txtResult.Text.Length > 0) {
                        
    this.txtResult.Text = this.txtResult.Text.Substring(0this.txtResult.Text.Length - 1);
                    }
                }
            }
        }
        
    public class ProductCollection : ICollection<Product>
        {
            List
    <Product> _Products;
            
    public ProductCollection()
            {
                _Products 
    = new List<Product>();
            }
            
    #region ICollection<Product> Members

            
    public void Add(Product item)
            {
                _Products.Add(item);
            }

            
    public void Clear()
            {
                _Products.Clear();
            }

            
    public bool Contains(Product item)
            {
                
    return _Products.Contains(item);
            }

            
    public void CopyTo(Product[] array, int arrayIndex)
            {
                
    throw new NotImplementedException();
            }

            
    public int Count
            {
                
    get { return _Products.Count; }
            }

            
    public bool IsReadOnly
            {
                
    get { return true; }
            }

            
    public bool Remove(Product item)
            {
                
    return _Products.Remove(item);
            }

            
    #endregion

            
    #region IEnumerable<Product> Members

            
    public IEnumerator<Product> GetEnumerator()
            {
                
    return _Products.GetEnumerator();
            }

            
    #endregion

            
    #region IEnumerable Members

            System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
            {
                
    return _Products.GetEnumerator();
            }

            
    #endregion
        }
        
    public class Product
        {
            
    public string id
            {
                
    get;
                
    set;
            }
            
    public string productid
            {
                
    get;
                
    set;
            }
            
    public string productname
            {
                
    get;
                
    set;
            }
            
    public string categoryid
            {
                
    get;
                
    set;
            }
            
    public string createtime
            {
                
    get;
                
    set;
            }
        }
    }

  • 相关阅读:
    JS点击按钮,提示确认后跳转网页,并可传递参数
    JS点击按钮,提示确认后跳转网页,并可传递参数
    JS点击按钮,提示确认后跳转网页,并可传递参数
    JS点击按钮,提示确认后跳转网页,并可传递参数
    vim的四种工作模式(转载别人的)
    vim的四种工作模式(转载别人的)
    vim的四种工作模式(转载别人的)
    vim的四种工作模式(转载别人的)
    MySQL数据库的套接字文件和pid文件
    动漫授权逐渐打开,周边市场潜力无限
  • 原文地址:https://www.cnblogs.com/nosnowwolf/p/1892283.html
Copyright © 2020-2023  润新知