• C#-WebForm-★★★LinQ-数据的条件组合查询并进行分页展示(未加各种限定)★★★


    前台代码:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
        <style>
            * {
                padding: 0px;
                margin: 0px;
            }
    
            #div0 {
                 1000px;
                position: relative;
                margin: 0px auto;
            }
    
            #tb1 {
                 100%;
                text-align: center;
            }
        </style>
    </head>
    <body>
        <form id="form1" runat="server">
            <div id="div0">
                Name:<asp:TextBox ID="txt_name" runat="server"></asp:TextBox>
                Brand:<asp:TextBox ID="txt_brand" runat="server"></asp:TextBox>
                Price:<asp:DropDownList ID="ddl_price" runat="server">
                    <asp:ListItem Value="=">等于</asp:ListItem>
                    <asp:ListItem Value=">=">大于等于</asp:ListItem>
                    <asp:ListItem Value="<=">小于等于</asp:ListItem>
                </asp:DropDownList>
                <asp:TextBox ID="txt_price" runat="server"></asp:TextBox>
                <asp:Button ID="btn_selectsome" runat="server" Text="查询" />
                <asp:Button ID="btn_selectall" runat="server" Text="查询全部" />
                <br />
                <br />
                <table id="tb1" border="1" cellpadding="0" cellspacing="0">
                    <tr style="background-color: navy; color: white;">
                        <td>Code</td>
                        <td>Namge</td>
                        <td>Brand</td>
                        <td>Time</td>
                        <td>Oil</td>
                        <td>Powers</td>
                        <td>Exhaust</td>
                        <td>Price</td>
                        <td>Pic</td>
                        <td>操作</td>
                    </tr>
                    <asp:Repeater ID="Repeater1" runat="server">
                        <ItemTemplate>
                            <tr>
                                <td><%#Eval("Code") %></td>
                                <td><%#Eval("Name") %></td>
                                <td><%#Eval("Brand") %></td>
                                <td><%#Eval("Time") %></td>
                                <td><%#Eval("Oil") %></td>
                                <td><%#Eval("Powers") %></td>
                                <td><%#Eval("Exhaust") %></td>
                                <td><%#Eval("Price") %></td>
                                <td><%#Eval("Pic") %></td>
                                <td>
                                    <a href="Update.aspx?name=<%#Eval("name") %>">修改</a>
                                    <a href="Delete.aspx?name=<%#Eval("name") %>">删除</a>
                                </td>
                            </tr>
                        </ItemTemplate>
                    </asp:Repeater>
                </table>
                <br />
                共【<asp:Label ID="lb_AllInf" runat="server" Text="加载中..."></asp:Label>】条数据&nbsp;
                当前第【<asp:Label ID="lb_NowPage" runat="server" Text="加载中..."></asp:Label>】页&nbsp;
                共【<asp:Label ID="lb_MaxPageNum" runat="server" Text="加载中..."></asp:Label>】页&nbsp;
                <asp:Button ID="btn_prev" runat="server" Text="上一页" />
                <asp:Button ID="btn_next" runat="server" Text="下一页" />
    
            </div>
        </form>
    </body>
    </html>

    二、后台代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    //=====需要修改的数据名称(▲▲▲需要修改的数据▲▲▲)=====
    //①数据实体类  ②每页显示的数据条数
    //==========================================================
    //==========================================================
    
    public partial class _Default : System.Web.UI.Page
    {
        //全局变量
        //▲▲▲②每页显示的数据条数▲▲▲
        int vPagePerCount = 5;
    
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //首次加载全部数据
                Select(1);
                lb_NowPage.Text = "1";
            }
    
            //<查询全部>按钮
            btn_selectall.Click += btn_selectall_Click;
            //<查询>按钮
            btn_selectsome.Click += btn_selectsome_Click;
            //<下一页>
            btn_next.Click += btn_next_Click;
            //<上一页>
            btn_prev.Click += btn_prev_Click;
    
        }
        //<查询全部>按钮
        void btn_selectall_Click(object sender, EventArgs e)
        {
            //先清空文本框中的内容
            txt_name.Text = "";
            txt_brand.Text = "";
            ddl_price.SelectedValue = "=";
            txt_price.Text = "";
            //再查询绑定数据,并跳至第一页
            Select(1);
        }
        //<查询>按钮
        void btn_selectsome_Click(object sender, EventArgs e)
        {
            //查询绑定数据,并跳至第一页
            Select(1);
        }
        //<下一页>
        void btn_next_Click(object sender, EventArgs e)
        {
            //获取当前页码和最大页码
            int NowPageNum = Convert.ToInt32(lb_NowPage.Text);
            int MaxPageNum = Convert.ToInt32(lb_MaxPageNum.Text);
            //比较下一页页码和最大页码,只有当下一页页码不大于最大页码时才跳至下一页
            if (NowPageNum + 1 <= MaxPageNum)
            {
                Select(NowPageNum + 1);
            }
        }
        //<上一页>
        void btn_prev_Click(object sender, EventArgs e)
        {
            //获取当前页码
            int NowPageNum = Convert.ToInt32(lb_NowPage.Text);
            //比较上一页页码和第一页,只有当上一页页码不小于第一页时才跳至上一页
            if (NowPageNum - 1 >= 1)
            {
                Select(NowPageNum - 1);
            }
        }
    
        //====================封装方法=========================
        //查询数据并绑定方法  参数:要跳至的页数    返回:无返回值
        public void Select(int PageNum)
        {
            //获取查询条件
            string name = txt_name.Text.Trim();
            string brand = txt_brand.Text.Trim();
            string price = txt_price.Text.Trim();
            //查询并绑定数据
            using (mydbDataContext con = new mydbDataContext())
            {
                //查询
                IQueryable<Car> clist = con.Car.AsQueryable();
                if (name.Length > 0)
                    clist = clist.Where(r => r.Name.Contains(name));
                if (brand.Length > 0)
                    clist = clist.Where(r => r.Brand.Contains(brand));
                if (price.Length > 0)
                {
                    string f = ddl_price.SelectedValue;
                    if (f == "=")
                        clist = clist.Where(r => r.Price == Convert.ToDecimal(price));
                    if (f == ">=")
                        clist = clist.Where(r => r.Price >= Convert.ToDecimal(price));
                    if (f == "<=")
                        clist = clist.Where(r => r.Price <= Convert.ToDecimal(price));
    
                }
                //绑定数据
                Repeater1.DataSource = clist.Skip((PageNum - 1) * vPagePerCount).Take(vPagePerCount);
                Repeater1.DataBind();
                ////修改Label显示
                //总数据的条数
                decimal AllListCount = clist.Count();
                lb_AllInf.Text = AllListCount.ToString();
                //最大页数
                int MaxPageNum = Convert.ToInt32(Math.Ceiling(AllListCount / vPagePerCount));
                lb_MaxPageNum.Text = MaxPageNum.ToString();
                //当前页码
                lb_NowPage.Text = PageNum.ToString();
    
            }
        }
    
    }
  • 相关阅读:
    单片机多字节串口接收(转)
    TVS ESD 二极管介绍与应用
    W25X16测试程序
    51单片机基于定时器0的硬件延时代码
    [C#]在Windows Service中使用ThreadPool
    [C#]ASP.NET MVC 3 在线学习资料
    [C#]DataGridView中使用数据绑定Enum类型
    [HIMCM]Consortium可以免费下载了!
    [HIMCM]MathType小练习
    实现在DataGridView的编辑列里面选择列类型ColmnType时,多一种类型CalendarColumn从而增加时间控件
  • 原文地址:https://www.cnblogs.com/qq450867541/p/6388431.html
Copyright © 2020-2023  润新知