zoukankan      html  css  js  c++  java
  • 关于GridView中自定义分页、单选、多选的简单应用

    作者tag:windows/.net CSDN 推荐tag:checkboxname gridview footertext 单选 fenpage objbeforeitem 分页 ckb visible pagerbuttonclick linkbutton boundfield gridviewbind lblrecordcount objbeforeitembackgroundcolor headertext btnprev btnfirst btnlast datafield btnnext 选中 commandname commandargument radioname templatefield runat createdate pageindex lblcurrentindex 
        关于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 runat="server">
        <title></title>

        <script language="javascript" type="text/javascript">
        // 全部选中
        function QuanXuan_Click()
        {
            if (document.form1.checkboxname.length)
            {
                for (var i=0;i<document.form1.checkboxname.length;i++)
                {
                    document.form1.checkboxname[i].checked = true;
                }
            }
            else
            {
                document.form1.checkboxname.checked = true;
            }
        }
          
        // 取消选中
        function QuXiao_Click()
        {
            if (document.form1.checkboxname.length)
            {
                for (var i=0;i<document.form1.checkboxname.length;i++)
                {
                    document.form1.checkboxname[i].checked = false;
                }
            }
            else
            {
                document.form1.checkboxname.checked = false;
            }
        }
          
        // 判断没有选中的返回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)
        {
            objbeforeItembackgroundColor=obj.style.backgroundColor;
            obj.style.backgroundColor="#B9D1F3";                                       
            objbeforeItem=obj;
        }
           
        function ItemOut(obj)
        {           
            if(objbeforeItem)
            {
                objbeforeItem.style.backgroundColor=objbeforeItembackgroundColor;
            }   
        }
        //
        </script>

    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <table cellpadding="0" cellspacing="0" border="0" width="60%" 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="没有数据记录!!">
                                <Columns>
                                    <asp:BoundField HeaderText="编号" DataField="id" Visible="False" />
                                    <asp:TemplateField HeaderText="多选" FooterText="多选">
                                        <ItemTemplate>
                                            <input type="checkbox" id="checkboxname" name="checkboxname" value='<%# DataBinder.Eval(Container.DataItem, "id")%>' />
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="单选" FooterText="单选">
                                        <ItemTemplate>
                                            <input type="radio" id="RadioName" name="RadioName" value='<%# DataBinder.Eval(Container.DataItem, "id")%>' />
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:BoundField HeaderText="姓名" FooterText="姓名" DataField="name" />
                                    <asp:BoundField HeaderText="身份证号" FooterText="身份证号" DataField="card" />
                                    <asp:BoundField HeaderText="价格" FooterText="价格" DataField="price" DataFormatString="{0:¥#,##0.00}"
                                        HtmlEncode="False" />
                                    <asp:BoundField HeaderText="数字" FooterText="数字" DataField="price" DataFormatString="{0:0.00}"
                                        HtmlEncode="False" />
                                    <asp:BoundField HeaderText="建立时间" FooterText="建立时间" DataField="createdate" DataFormatString="{0:yyyy年MM月dd日 hh时mm分ss秒}"
                                        HtmlEncode="False" />
                                </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>
                            <input type="button" value="全部选中" onclick="QuanXuan_Click()" />
                            <input type="button" value="取消选中" onclick="QuXiao_Click()" />
                            <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 connStr = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
            string SqlStr = "SELECT * FROM test01 where id<10000";
            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)";
            e.Row.Attributes["onmouseout"] = "ItemOut(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"));
        }
    }


        数据库中表的生成代码:
    CREATE TABLE [dbo].[test01] (
        
    [id] [decimal](180IDENTITY (11NOT NULL ,
        
    [name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
        
    [card] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
        
    [createdate] [datetime] NULL 
    ON [PRIMARY]
    GO

    ALTER TABLE [dbo].[test01] ADD 
        
    CONSTRAINT [DF_test01_createdate] DEFAULT (getdate()) FOR [createdate],
        
    CONSTRAINT [PK_test01] PRIMARY KEY  CLUSTERED 
        (
            
    [id]
        )  
    ON [PRIMARY] 
    GO


    地址:http://blog.csdn.net/WeekZero/archive/2006/05/05/709419.aspx
  • 相关阅读:
    面向对象设计原则之二:开放封闭原则
    面向对象设计原则之一:单一职责原则
    设计模式之四:适配器模式(Adapter Pattern)
    面向对象设计原则之六:合成/聚合复用原则
    设计模式之三:迭代器模式(IteratorPattern)
    面向对象设计原则之五:迪米特法则
    设计模式之二:观察者模式(Observer Pattern)
    五分钟搭建 Flash 视频直播站
    Flash Media Server 3 开发版供下载
    不掉线的路由器路由特殊技术分析
  • 原文地址:https://www.cnblogs.com/yiki/p/635452.html
Copyright © 2011-2022 走看看