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

关于VS2005中GridView的自定义分页,单选、多选、排序、自增列的简单应用。多选时,只有全部选中时“多选”才选中。图片效果:简单示例,代码如下,fenpage.aspx的代码:<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="fenpage.aspx.cs"Inherits="gridview_fenpage"%>

关于VS2005中GridView的自定义分页,单选、多选、排序、自增列的简单应用。
    多选时,只有全部选中时“多选”才选中。

    图片效果:

     简单示例,代码如下,
      fenpage.aspx的代码


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="fenpage.aspx.cs" Inherits="gridview_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 name=&quot;chk&quot; type=&quot;checkbox&quot; id=&quot;chk&quot; value=&quot;checkbox&quot;  οnclick=&quot;checkJs(this.checked);&quot;/&gt;全选" FooterText="全选">

              <ItemTemplate>

                <input type="checkbox" id="checkboxname" name="checkboxname"value=''<%# DataBinder.Eval(Container.DataItem, "id")%>'' onclick=''SingleCheckJs();'' />

              </ItemTemplate>

            </asp:TemplateField>

            <asp:TemplateField HeaderText="单选" FooterText="单选">

              <ItemTemplate>

                <input type="radio" id="RadioName" name="RadioName" value=''<%# Eval("id")%>'' />

              </ItemTemplate>

            </asp:TemplateField>

            <asp:TemplateField HeaderText="自增列" FooterText="自增列">

              <ItemTemplate> <%# (Container.DataItemIndex+1).ToString()%> </ItemTemplate>

            </asp:TemplateField>

            <asp:BoundField HeaderText="姓名" FooterText="姓名" DataField="姓名" SortExpression="姓名" />

            <asp:BoundField HeaderText="手机" FooterText="手机" DataField="手机" SortExpression="手机" />

            <asp:BoundField HeaderText="宅电" FooterText="宅电" DataField="宅电"

                                    HtmlEncode="False" SortExpression="宅电"/>

            <asp:BoundField HeaderText="办公电话" FooterText="办公电话" DataField="办公电话"

                                    HtmlEncode="False" SortExpression="办公电话" />

            </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 gridview_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 Sql = "SELECT * FROM 通讯录 " + Sqlsort;

        DataSet ds = new DataSet();

 

        ds = db.exe_ds(Sql, "通讯录");

 

        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);

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值