zoukankan      html  css  js  c++  java
  • 030. asp.net中DataList数据绑定跳转(两种方式)的完整示例

    前台代码:

    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" MaintainScrollPositionOnPostback="true" %>
    
    <!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>
    </head>
    <body>
        <form id="form1" runat="server" style=" font-size: 9pt">
        <div>
            <table style=" 590px; height: 218px;" cellpadding="0" cellspacing="0">
                <tr>
                    <td style=" 112px; height: 240px">
                        <asp:DataList ID="DataList1" runat="server" Width="239px" CellPadding="0" 
                            Height="61px" onitemcommand="DataList1_ItemCommand" 
                            onitemdatabound="DataList1_ItemDataBound">
                            <HeaderTemplate>
                                <table border="1" cellpadding="0" cellspacing="0" style=" 300px; text-align: center;">
                                    <tr>
                                        <td colspan="4" style="font-size: 16pt; color: #006600; text-align: center">
                                           分页显示DataList控件中的数据</td>
                                    </tr>
                                    <tr>
                                        <td style="height: 19px;  50px; color: #669900;">
                                            编号</td>
                                        <td style="height: 19px;  50px; color: #669900;">
                                            姓名</td>
                                        <td style="height: 19px;  50px; color: #669900;">
                                            性别</td>
                                        <td style=" 150px; height: 19px; color: #669900;">
                                            内编号</td>
                                    </tr>
                                </table>
                            </HeaderTemplate>
                            <ItemTemplate>
                                <table border="1" cellpadding="0" cellspacing="0" style=" 300px; color: #000000;
                                    text-align: center;">
                                    <tr>
                                        <td style="height: 21px;  50px; color: #669900;">
                                            <asp:Label ID="lblStuID" runat="server" Text='<%# Eval("cardNo") %>'></asp:Label></td>
                                        <td style="height: 21px;  50px; color: #669900;">
                                            <asp:Label ID="lblStuName" runat="server" Text='<%# Eval("name") %>'></asp:Label></td>
                                        <td style="height: 21px;  50px; color: #669900;">
                                            <asp:Label ID="lblStuSex" runat="server" Text='<%# Eval("sex") %>'></asp:Label></td>
                                        <td style=" 150px; height: 21px; color: #669900;">
                                            <asp:Label ID="lblstuHobby" runat="server" Text='<%# Eval("cardBound") %>'></asp:Label></td>
                                    </tr>
                                </table>
                            </ItemTemplate>
                            <FooterTemplate>
                                <table style=" 500px" cellpadding="0" cellspacing="0">
                                    <tr>
                                        <td style=" 71px; height: 4px" valign="middle">
                                            共有<asp:Label ID="labCount" runat="server" ForeColor="#FF3300" Width="12px"/></td>
                                        <td style=" 73px; height: 4px" valign="middle">
                                            当前<asp:Label ID="labNowPage" runat="server" ForeColor="Brown">1</asp:Label></td>
                                        <td style=" 46px; height: 4px" valign="middle">
                                            <asp:LinkButton ID="lnkbtnFirst" runat="server" CommandName="first"
                                                Font-Underline="False" ForeColor="Black" Width="43px">首页</asp:LinkButton></td>
                                        <td style=" 55px; height: 4px" valign="middle">
                                            <asp:LinkButton ID="lnkbtnFront" runat="server" CommandName="pre" 
                                                Font-Underline="False" ForeColor="Black" Width="62px">上一页</asp:LinkButton></td>
                                        <td style=" 51px; height: 4px" valign="middle">
                                            <asp:LinkButton ID="lnkbtnNext" runat="server" CommandName="next"
                                                Font-Underline="False" ForeColor="Black" Width="61px">下一页</asp:LinkButton></td>
                                        <td style=" 29px; height: 4px" valign="middle">
                                            <asp:LinkButton ID="lnkbtnLast" runat="server" Font-Overline="False" CommandName="last"
                                                Font-Underline="False" ForeColor="Black" Width="38px">尾页</asp:LinkButton></td>
    
    <%--文本框输入方式实现的页面跳转--%>
                                       <%-- <td style=" 200px; height: 4px" valign="middle">&nbsp;&nbsp; 跳转至:<asp:TextBox ID="txtPage" runat="server" Width="25px" Height="21px"></asp:TextBox>
                                            <asp:Button ID="Button1" runat="server" CommandName="search" Text="GO" 
                                                Height="19px" />
                                            <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
                                                ControlToValidate="txtPage" ErrorMessage="请输入数字(除了数值0)" 
                                                ValidationExpression="[1-9]+(d)*"></asp:RegularExpressionValidator>
                                        </td>--%>   
    
    <%--下拉列表方式实现的页面跳转--%>
                                        <td style=" 200px; height: 4px" valign="middle">&nbsp;&nbsp; 跳转至:
                                        <asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>
                                            <asp:Button ID="Button1" runat="server" CommandName="search" Text="GO" 
                                                Height="19px" />
                                        </td>
                                    </tr>
                                </table>
                            </FooterTemplate>
                        </asp:DataList>
                    </td>
                </tr>
                <tr>
                    <td style=" 112px; height: 12px">   
                    </td>
                </tr>
            </table>
        </div>
        </form>
    </body>
    </html>

    后台cs代码:

    using System;
    using System.Data;
    using System.Configuration;
    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 _Default : System.Web.UI.Page
    {
        protected static PagedDataSource ps = new PagedDataSource();//创建一个分页数据源的对象且一定要声明为静态
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Bind(0);//数据绑定
            }
        }
        //进行数据绑定的方法
        public void Bind(int CurrentPage)
        {
            //实例化SqlConnection对象
            SqlConnection sqlCon = new SqlConnection();
            //实例化SqlConnection对象连接数据库的字符串
            sqlCon.ConnectionString = "server=.;uid=sa;pwd=123.456;database=TYW";
            //定义SQL语句
            string SqlStr = "select * from card";
            //实例化SqlDataAdapter对象
            SqlDataAdapter da = new SqlDataAdapter(SqlStr, sqlCon);
            //实例化数据集DataSet
            DataSet ds = new DataSet();
            da.Fill(ds, "cardInfo");
    
            ps.DataSource = ds.Tables["cardInfo"].DefaultView;
            ps.AllowPaging = true; //是否可以分页
            ps.PageSize = 10; //每页显示的条数
            ps.CurrentPageIndex = CurrentPage; //取得当前页的页码
           
            this.DataList1.DataSource = ps;
            this.DataList1.DataKeyField = "cardNo";
            this.DataList1.DataBind();
        }
       
        protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
        {
            switch (e.CommandName)
            {
                //以下5个为 捕获用户点击 上一页 下一页等时发生的事件
                case "first"://第一页
                    ps.CurrentPageIndex = 0;
                    Bind(ps.CurrentPageIndex);
                    break;
                case "pre"://上一页
                    ps.CurrentPageIndex = ps.CurrentPageIndex - 1;
                    Bind(ps.CurrentPageIndex);
                    break;
                case "next"://下一页
                    ps.CurrentPageIndex = ps.CurrentPageIndex + 1;
                    Bind(ps.CurrentPageIndex);
                    break;
                case "last"://最后一页
                    ps.CurrentPageIndex = ps.PageCount - 1;
                    Bind(ps.CurrentPageIndex);
                    break;
                case "search"://页面跳转页
                    if (e.Item.ItemType == ListItemType.Footer)
                    {
                        int PageCount = int.Parse(ps.PageCount.ToString());
                        DropDownList ddl = e.Item.FindControl("DropDownList1") as DropDownList;
                        int MyPageNum = 0;
                        MyPageNum = Convert.ToInt32(ddl.SelectedValue);
                        if (MyPageNum <= 0 || MyPageNum > PageCount)
                            Response.Write("<script>alert('请输入页数并确定没有超出总页数!')</script>");
                        else
                            Bind(MyPageNum - 1);
                    }
                    break;
            }
        }
        protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Footer)
            {
                //以下六个为得到脚模板中的控件,并创建变量
                Label CurrentPage = e.Item.FindControl("labNowPage") as Label;
                Label PageCount = e.Item.FindControl("labCount") as Label;
                LinkButton FirstPage = e.Item.FindControl("lnkbtnFirst") as LinkButton;
                LinkButton PrePage = e.Item.FindControl("lnkbtnFront") as LinkButton;
                LinkButton NextPage = e.Item.FindControl("lnkbtnNext") as LinkButton;
                LinkButton LastPage = e.Item.FindControl("lnkbtnLast") as LinkButton;
                CurrentPage.Text = (ps.CurrentPageIndex + 1).ToString();//绑定显示当前页
                PageCount.Text = ps.PageCount.ToString();//绑定显示总页数
                if (ps.IsFirstPage)//如果是第一页,首页和上一页不能用
                {
                    FirstPage.Enabled = false;
                    PrePage.Enabled = false;
                }
                if (ps.IsLastPage)//如果是最后一页"下一页"和"尾页"按钮不能用
                {
                    NextPage.Enabled = false;
                    LastPage.Enabled = false;
                }
    
                DropDownList ddl = e.Item.FindControl("DropDownList1") as DropDownList;
                ddl.Items.Clear();
                for (int i = 1; i <= ps.PageCount; i++)
                {
                    ddl.Items.Add(i.ToString());
                }
            }
        }
    }
  • 相关阅读:
    MySQL数据库安装和基本使用
    Android studio JNI技术实现与本地C++链接
    笔记 java中i++ 和 ++i的区别
    LaTeX中添加usepackage{subfigure}一直报错的解决办法,亲测
    Android Studio 出现“Cannot resolve symbol” 解决办法
    记录一个sql
    linux 文件内容查找、去重、统计
    MVC框架的模板缓存
    Linux 命令学习
    笔记 :PHP中的数据结构库SPL
  • 原文地址:https://www.cnblogs.com/wxylog/p/6182353.html
Copyright © 2011-2022 走看看