• 关于GridView中自定义分页、单选、多选、排序、自增列的简单应用



    fenpage.aspx
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="fenpage.aspx.cs" Inherits="fenpage" %>

    <!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 id="Head1" runat="server"> 
    <title></title> 

    <script language="javascript" type="text/javascript"> 
    // 判断多选是否与选中项(没有选中的返回false) 
    function slcNo_click() 

        
    if (document.form1.checkboxname.length) 
        

         
    for (var i=0;i<document.form1.checkboxname.length;i++
            

              
    if(document.form1.checkboxname[i].checked
                  

                      
    return true
                   }
     
            }
     
        }
     
        
        
    else 
        

              
    if(document.form1.checkboxname.checked
                

                  
    return true
                 }
     
        }
     
    alert(
    "请选择后再操作!"); 
    return false
    }
     

    // 鼠标经过改变行的颜色 
    if (!objbeforeItem) 

    var objbeforeItem
    =null
    var objbeforeItembackgroundColor
    =null
    }
     
    function ItemOver(obj) 

    if(objbeforeItem) 

    objbeforeItem.style.backgroundColor 
    = objbeforeItembackgroundColor; 
    }
     
    objbeforeItembackgroundColor 
    = obj.style.backgroundColor; 
    objbeforeItem 
    = obj; 
    obj.style.backgroundColor 
    = "#B9D1F3"
    }
     
    // 

    // 多选的全选与取消 
    function checkJs(boolvalue) 

    if(document.all.checkboxname.length>1

    for(var i=0;i<document.all.checkboxname.length;i++

    document.all.checkboxname[i].
    checked = boolvalue; 
    }
     
    }
     
    else 
    document.all.checkboxname.
    checked = boolvalue; 
    }
     
    // 

    // 只有全部选中时“全选”选中 
    function SingleCheckJs() 

    var flag1
    =false
    var flag2
    =false

    if (document.form1.checkboxname.length) 

    for (var i=0;i<document.form1.checkboxname.length;i++

    if(document.form1.checkboxname[i].checked
    flag1 
    = true
    else 
    flag2 
    = true
    }
     
    }
     
    else 

    if(document.form1.checkboxname.checked
    flag1 
    = true
    else 
    flag2 
    = true
    }
     

    if(flag1==true&&flag2==false
    document.getElementById(
    "chk").checked = true
    else 
    document.getElementById(
    "chk").checked = false
    }
     
    // 
    </script> 
    </head> 
    <body> 
    <form id="form1" runat="server"> 
    <div> 
    <table cellpadding="0" cellspacing="0" border="0" width="80%" style="font-size: 11px"> 
    <tr> 
    <td align="center"> 

    <asp:GridView ID="GridView1" runat="server" Width="100%" CellPadding="4" ForeColor="#333333" 
    AutoGenerateColumns
    ="False" AllowPaging="True" PageSize="12" BorderColor="Silver" 
    BorderStyle
    ="Solid" BorderWidth="1px" OnRowDataBound="GridView1_RowDataBound" 
    ShowFooter
    ="True" EmptyDataText="没有数据记录!!" AllowSorting="True" OnSorting="GridView1_Sorting"> 
    <Columns> 
    <asp:BoundField HeaderText="编号" DataField="id" Visible="False" /> 
    <asp:TemplateField HeaderText="&lt;input type='checkbox' id='chk' name='chk' onclick='checkJs(this.checked);' /&gt;全选" FooterText="全选"> 
    <ItemTemplate> 
    <input type="checkbox" id="checkboxname" name="checkboxname" value='<%# DataBinder.Eval(Container.DataItem, "CustomerID")%>' onclick='SingleCheckJs();' /> 
    </ItemTemplate> 
    </asp:TemplateField> 
    <asp:TemplateField HeaderText="单选" FooterText="单选"> 
    <ItemTemplate> 
    <input type="radio" id="RadioName" name="RadioName" value='<%# Eval("CustomerID")%>' /> 
    </ItemTemplate> 
    </asp:TemplateField> 
    <asp:TemplateField HeaderText="自增列" FooterText="自增列"> 
    <ItemTemplate> 
    <%# (Container.DataItemIndex+1).ToString()%> 
    </ItemTemplate> 
    </asp:TemplateField> 
    <asp:BoundField HeaderText="姓名" FooterText="姓名" DataField="companyname" SortExpression="companyname" /> 
    <asp:BoundField HeaderText="身份证号" FooterText="身份证号" DataField="address" SortExpression="address" /> 

    </Columns> 
    <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> 
    <EditRowStyle BackColor="#999999" /> 
    <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> 
    <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> 
    <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> 
    <PagerSettings Visible="False" /> 
    <FooterStyle Font-Bold="True" /> 
    <HeaderStyle Font-Bold="False" Font-Italic="False" /> 
    </asp:GridView> 
    </td> 
    </tr> 
    <tr> 
    <td align="center" style="height: 25px"> 
    <asp:LinkButton ID="btnFirst" CommandArgument="first" OnClick="PagerButtonClick" 
    runat
    ="server">首 页</asp:LinkButton> 
    <asp:LinkButton ID="btnPrev" CommandArgument="prev" OnClick="PagerButtonClick" runat="server">上一页</asp:LinkButton> 
    <asp:LinkButton ID="btnNext" CommandArgument="next" OnClick="PagerButtonClick" runat="server">下一页</asp:LinkButton> 
    <asp:LinkButton ID="btnLast" CommandArgument="last" OnClick="PagerButtonClick" runat="server">尾 页</asp:LinkButton> 
    <asp:Label ID="LblCurrentIndex" runat="server"></asp:Label> 
    <asp:Label ID="LblPageCount" runat="server"></asp:Label> 
    <asp:Label ID="LblRecordCount" runat="server"></asp:Label></td> 
    </tr> 
    <tr> 
    <td> 
    <asp:Button ID="Button2" runat="server" Text="checkbox得到选择的行" OnClick="Button2_Click"> 
    </asp:Button> 
    <asp:Button ID="Button1" runat="server" Text="radio得到选择的行" OnClick="Button1_Click"></asp:Button> 
    </td> 
    </tr> 
    </table> 
    </div> 
    </form> 
    </body> 
    </html> 

    fenpage.aspx.cs
    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;
    using System.Data.SqlClient;

    public partial class fenpage : System.Web.UI.Page
    {
      
    protected void Page_Load(object sender, EventArgs e) 

    Button2.Attributes[
    "onclick"= "return slcNo_click();"
    GridViewBind(
    ""); 
    }
     

    private void GridViewBind(string Sqlsort) 

    string connStr = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString; 
    string SqlStr = "SELECT * FROM Customers" + Sqlsort; 
    DataSet ds 
    = new DataSet(); 

    try 

    SqlConnection conn 
    = new SqlConnection(connStr); 
    if (conn.State.ToString() == "Closed") conn.Open(); 

    SqlDataAdapter da 
    = new SqlDataAdapter(SqlStr, conn); 
    da.Fill(ds, 
    "test01"); 
    if (conn.State.ToString() == "Open") conn.Close(); 

    GridView1.DataSource 
    = ds.Tables[0].DefaultView; 
    GridView1.DataBind(); 

    LblCurrentIndex.Text 
    = "第 " + (GridView1.PageIndex + 1).ToString() + " 页"
    LblPageCount.Text 
    = "共 " + GridView1 .PageCount.ToString()+ " 页"
    LblRecordCount.Text 
    = "总共 "+ds.Tables[0].Rows.Count.ToString()+" 条"
    if (ds.Tables[0].Rows.Count == 0

    btnFirst.Visible 
    = false
    btnPrev.Visible 
    = false
    btnNext.Visible 
    = false
    btnLast.Visible 
    = false

    LblCurrentIndex.Visible 
    = false
    LblPageCount.Visible 
    = false
    LblRecordCount.Visible 
    = false
    }
     
    else if (GridView1.PageCount == 1

    btnFirst.Visible 
    = false
    btnPrev.Visible 
    = false
    btnNext.Visible 
    = false
    btnLast.Visible 
    = false
    }
     

    // 计算生成分页页码,分别为:"首 页" "上一页" "下一页" "尾 页" 
    btnFirst.CommandName = "1"
    btnPrev.CommandName 
    = (GridView1.PageIndex == 0 ? "1" : GridView1.PageIndex.ToString()); 

    btnNext.CommandName 
    = (GridView1.PageCount == 1 ? GridView1.PageCount.ToString() : (GridView1.PageIndex + 2).ToString()); 
    btnLast.CommandName 
    = GridView1.PageCount.ToString(); 
    // 
    }
     
    catch(Exception ex) 

    Response.Write(
    "数据库错误,错误原因:"+ex.Message); 
    Response.End(); 
    }
     
    }
     
    protected void PagerButtonClick(object sender, EventArgs e) 

    GridView1.PageIndex 
    = Convert.ToInt32(((LinkButton)sender).CommandName)-1
    GridViewBind(
    ""); 
    }
     

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 

    e.Row.Attributes[
    "onmouseover"= "ItemOver(this)"
    }
     

    protected void Button2_Click(object sender, EventArgs e) 

    string str=""
    string []ckb=null

    str
    =Request.Form.Get("checkboxname"); 
    ckb
    =str.Split(new char[]{','}); 

    Response.Write(
    "直接在页面中得到的值为:"+str+"<br>"); 

    Response.Write(
    "处理后存放在数组中,如下:<br>"); 
    for(int i=0;i<ckb.Length;i++

    Response.Write(
    "ckb["+i+"]的值为:"+ckb[i]+"<br>"); 
    }
     
    }
     
    protected void Button1_Click(object sender, EventArgs e) 

    Response.Write(Request.Form.Get(
    "RadioName")); 
    }
     
    protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) 

    string sql = ""

    if (ViewState["SortDirection"== null || ViewState["SortDirection"].ToString().CompareTo(""== 0

    ViewState[
    "SortDirection"= " desc"
    }
     
    else 
    ViewState[
    "SortDirection"= ""

    sql 
    = " order by " + e.SortExpression + ViewState["SortDirection"]; 

    GridViewBind(sql); 
    }
     


    }

  • 相关阅读:
    需要做一个 Android客户端 访问 服务器数据库 的 Demo
    如何使用Device File Explorer 从计算机拷贝文件到模拟器/手机?
    Android Studio 3.0 正式版 初体验
    Android Studio 原生模拟器, DDMS data打不开,adb shell 修改权限遇到:/system/bin/sh: su: not found
    2017.9.6 实验课:安装环境遇到的问题总结
    IntelliJ IDEA
    移动终端
    关于编程~
    2018面向对象程序设计(Java)第18周学习指导及要求
    2018面向对象程序设计(Java)第17周学习指导及要求
  • 原文地址:https://www.cnblogs.com/younger/p/549591.html
Copyright © 2020-2023  润新知