LinQ 组合查分页

页面中代码 js光棒效果

<form id="form1" runat="server">
    昵称:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        性别:<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        出生年份:<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="查询" /><br />
        <a target="_blank" href="Insert.aspx">添加</a>   
        <asp:repeater ID="Repeater1" runat="server">
        <HeaderTemplate>
            <table id="table" style="background-color:navy;width:100%;text-align:center;">
                <tr id="t-head" style="color:white;">
                <td>用户名</td>
                 <td>密码</td>
                 <td>昵称</td>
                 <td>性别</td>
                 <td>生日</td>
                 <td>民族</td>
                <td>操作</td>
                </tr>
        </HeaderTemplate>
        <ItemTemplate>
              <tr class="t-item" style="background-color:white;">
                <td><%#Eval("UserName") %></td>
                 <td><%#Eval("Pword") %></td>
                 <td><%#Eval("NickName") %></td>
                 <td ><%#Eval("Sexpic") %></td>
                 <td><%#Eval("Birthday","{0:yyyy年MM月dd日}") %></td>
                 <td><%#Eval("NationName") %></td> 
                  <td>
                      <a onclick="return del();" href="Delete.aspx?id=<%#Eval("UserName") %>">删除</a>
                      <a target="_blank" href="Update.aspx?id=<%#Eval("UserName") %>">修改</a>
                  </td>     
                </tr>
        </ItemTemplate>
        <FooterTemplate>
               </table>
        </FooterTemplate>
    </asp:repeater>
        <asp:HiddenField ID="HiddenField1" runat="server" />
        <asp:HiddenField ID="HiddenField2" runat="server" />
        <asp:HiddenField ID="HiddenField3" runat="server" />
        当前第【<asp:Label ID="Label_now" runat="server" Text="Label"></asp:Label>】页 
        共【<asp:Label ID="Label_max" runat="server" Text="Label"></asp:Label>】页
        <asp:LinkButton ID="LinkButton_prev" runat="server">上一页</asp:LinkButton>
        <asp:LinkButton ID="LinkButton_next" runat="server">下一页</asp:LinkButton>
        <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
        <asp:Button ID="Button2" runat="server" Text="跳转" />
    </form>




<script>
    var item = document.getElementsByClassName("t-item");
    for (var v = 0; v < item.length; v++) {
        item[v].onmouseover = function () {
            if (this.style.backgroundColor == "white")
            this.style.backgroundColor = "yellow";//移入变黄色
        };
        item[v].onmouseout = function () {
            if (this.style.backgroundColor == "yellow")
            this.style.backgroundColor = "white";//移出变白色
        };
        item[v].onclick = function () {
            for (var j = 0; j < item.length; j++)
            {
                item[j].style.backgroundColor = "white";
            }
            this.style.backgroundColor = "red";//点击变红色
        };
    }
</script>
页面代码 

后台封装查询方法 

 1  private IQueryable<Users> Select(Data0720DataContext con)
 2     {
 3         IQueryable<Users> ALL = con.Users.AsQueryable();
 4         if (HiddenField1.Value.Length > 0)//文本框输入有内容 取集合的交集
 5         {
 6             var Namelist = con.Users.Where(r => r.NickName.Contains(TextBox1.Text.Trim()));
 7             ALL = ALL.Intersect(Namelist);
 8         }
 9         if (HiddenField2.Value == "" || HiddenField2.Value == "")
10         {
11             var sexlist = con.Users.Where(r => Convert.ToBoolean(r.Sex) == (TextBox2.Text.Trim() == "" ? true : false));
12             ALL = ALL.Intersect(sexlist);
13         }
14         if (HiddenField3.Value.Length > 0)
15         {
16             try
17             {
18                 int year = Convert.ToInt32(TextBox3.Text.Trim());
19                 var yearlist = con.Users.Where(r => Convert.ToDateTime(r.Birthday).Year == year);
20                 ALL = ALL.Intersect(yearlist);
21             }
22             catch
23             {
24             }
25         }
26         return ALL;
27     }
查询方法

后台封装求最大页数的方法

 1 public int MaxPageNumber()
 2     {
 3         using (Data0720DataContext con = new Data0720DataContext())
 4         {
 5             var All = Select(con);
 6             double nu = All.ToList().Count / (Pagecount * 1.0);
 7             int num = Convert.ToInt32(Math.Ceiling(nu));
 8             return num;
 9 
10         }
11     }
求最大页数

后台绑定数据

 1 int Pagecount = 2;//定义每页显示的数据条数
 2     protected void Page_Load(object sender, EventArgs e)
 3     {
 4         if (!IsPostBack)
 5         {
 6 
 7             using (Data0720DataContext con = new Data0720DataContext())
 8             {
 9                 Repeater1.DataSource = Select(con).Take(Pagecount);
10                 Repeater1.DataBind();
11                 Label_now.Text = "1";
12                 Label_max.Text = MaxPageNumber().ToString();
13             }
14         }
15         Button1.Click += Button1_Click;//查询
16         LinkButton_prev.Click += LinkButton_prev_Click;//上一页
17         LinkButton_next.Click += LinkButton_next_Click;//下一页
18         Button2.Click += Button2_Click;//跳转
19     }
绑定数据

查询

 1 void Button1_Click(object sender, EventArgs e)//查询
 2     {
 3         HiddenField1.Value = TextBox1.Text.Trim();
 4         HiddenField2.Value = TextBox2.Text.Trim();
 5         HiddenField3.Value = TextBox3.Text.Trim();
 6         using (Data0720DataContext con = new Data0720DataContext())
 7         {
 8             var All = Select(con);
 9 
10             Repeater1.DataSource = All.Take(Pagecount).ToList();
11             Repeater1.DataBind();
12             Label_now.Text = "1";
13             Label_max.Text = MaxPageNumber().ToString();
14         }
15     }
查询按钮

下一页

 1 void LinkButton_next_Click(object sender, EventArgs e)//下一页
 2     {
 3         int NowNumber = Convert.ToInt32(Label_now.Text) + 1;
 4 
 5         using (Data0720DataContext con = new Data0720DataContext())
 6         {
 7             var All = Select(con);
 8             Repeater1.DataSource = All.Skip(Pagecount * (NowNumber - 1)).Take(Pagecount).ToList();
 9             Repeater1.DataBind();
10         }
11         if (NowNumber > Convert.ToInt32(Label_max.Text))
12         {
13             return;
14         }
15         Label_now.Text = NowNumber.ToString();
16     }
下一页

上一页 

 1 void LinkButton_prev_Click(object sender, EventArgs e)//上一页
 2     {
 3         int NowNumber = Convert.ToInt32(Label_now.Text) - 1;
 4         if (NowNumber <= 1)
 5         {
 6             return;
 7         }
 8         using (Data0720DataContext con = new Data0720DataContext())
 9         {
10             var All = Select(con);
11             Repeater1.DataSource = All.Skip(Pagecount * (NowNumber - 1)).Take(Pagecount).ToList();
12             Repeater1.DataBind();
13         }
14 
15         Label_now.Text = NowNumber.ToString();
16     }
上一页

跳转到那一页

 1 void Button2_Click(object sender, EventArgs e)//跳转
 2     {
 3         using (Data0720DataContext con = new Data0720DataContext())
 4         {
 5             var All = Select(con);
 6             Repeater1.DataSource = All.Skip(Pagecount * (Convert.ToInt32(TextBox4.Text) - 1)).Take(Pagecount).ToList();
 7             Repeater1.DataBind();
 8         }
 9         Label_now.Text = TextBox4.Text;
10     }
跳转

 页面显示

 

posted on 2017-02-09 15:53  胡了个凡  阅读(453)  评论(0编辑  收藏  举报

导航