zoukankan      html  css  js  c++  java
  • 关于asp.net假分页的删除操作的随笔

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs"  Inherits="PagingTestDome1.Index"%>

    <!DOCTYPE html>

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head runat="server">

    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>

    <script src="js/jquery-1.6.2.min.js"></script>

    <title></title>

    <style type="text/css">

    a{

         text-decoration:none;color:#686868;

    }

    a:hover{

    color:#6287ef;

    }

    .page_set{

    float:left;

    margin-top:50px;

    }

    .table_content{

    text-align:center;

    }

    .page_set a 

    {

    border:0.5px solid #999;

    padding:1px 4px;

    }

    .page_set p

    {

    display:inline;

    }

    </style>

    </head>

    <body>

    <form id="form1" runat="server">

    <div>

    <h3>假分页--删除</h3>

    <asp:Repeater ID="rp_news" runat="server" OnItemDataBound="rp_news_ItemDataBound" OnItemCommad="rp_news_ItemCommand">

    <HeaderTemplate>

     <table id="tableinfo" border="1px" style="border-collapse;"bordercolor="#eeeeee" cellpadding="2px" cellspacing="0">

    <tr style="height:22px;background-color:#eeeeee;text-align:center;">

    <th style="300px;font-weight:normal;">编号</th>

    <th style="300px;font-weight:normal;">商品名</th>

    <th style="300px ;font-weight:normal;">价格</th>

    <th style="80px;font-weight:normal;">删除</th>

    </tr>

    <tbody id="trId">

    </HeaderTemplate>

    <ItemTemplate>

    <asp:Panel ID="plItem" runat="server">

    <tr style="height:17px;background-color:White;text-align:center;">

    <asp:Label ID="lb_ID1" runat="server" Text='<%# Eval("id")%>'></asp:Label>

    <td><asp:Label ID="lb_ID" runat="server" Text='<%# Eval("id")%'></aspx:Label></td>

    <td><asp:Label ID="lb_name" runat="server" Text='<%# Eval("goodsName")%>'></asp:Label></td>

    <td><asp:Label ID="lb_price" runat="server" Text='<%# Eval("price")%>'></asp:Label></td>

    <td><asp:ImageButton ID="lbtDelete" ImageUrl="img/delete.png" runat="server" CommandName="Delete"/></td>

    </tr>

    </asp:Panel>

    </ItemTemplate>

    <FooterTemplate>

    </tbody>

    </table>

    </FooterTemplate>

    </asp:Repeater>

    <div class="page_set">

    <p id="pages"></p>

    <p id="sjzl"></p>

    <a href="#" id="btn_first">首页</a>

    <a href="#" id="btn_previous">上一页</a>

    <a href="#" id="btn_next">下一页</a>

    <a href="#" id="btn_last">尾页</a>

    <p>转到</p>

    <input style="40px;height:16px;" maxlength="5" id="changePage"/>

    <p>页</p>

    <a href="#" id="btn_change">跳转</a>

    </div>

    <div class="clear"></div>

    <script type="text/javascript">

    var pageSize=5;//每页显示的记录条数

    var curPage=0;//当前页

    var lastPage;//最后页

    var direct=0;//方向

    var len;//总行数

    var page;//总页数

    var begin;

    var end;

    var cPage=0;

    $(d0cument).ready(function display(){

    len=$("#trId tr").length;//求这个表的总行数,剔除第一行介绍

    page=len%pageSize==0?len/pageSize:Math.floor(len/pageSize)+1;//根据记录条数,计算页数

    curPage=1;//设置当前为第一页

    displayPage(1);//显示第一页

    document.getElementById("pages").innerHTML="当前"+curPage+"/"+page+"页";//显示当前多少页

    document.getElementById("sjzl").innerHTML="数据总量"+len+"";//显示数据量

    $("#btn_first").click(function firstPage(){//首页

    curPage=1;

    direct=0;

    displayPage();

    });

    $("#btn_previous").click(function frontPage(){//上一页

    direct=-1;

    displayPage();

    });

    $("#btn_next").click(function nextPage(){//下一页

    direct=1;

    displayPage();

    });

    $("#btn_last").click(function lastPage(){//尾页

    curPage=page;

    direct=0;

    displayPage();

    });

    $("#btn_change").click(function changePage(){//转页

    curPage=document.getElementById("changePage").value*1;

    if(!/^[1-9]d*$/.test(curPage)){

    alert("请输入正整数");

    return;

    }

    if(curPage>page){

    alert("超出数据页面");

    return;

    }

    direct=0;

    displayPage();

    });

    });

    function displayPage(){

    if(curPage<=1&&direct==-1){

    direct=0;

    alert("已经是第一页了");

    return;

    }

    else if(curPage >=page&&direct==1){

    direct=0;

    alert("已经是最后一页了");

    return;

    }

    lastPage=curPage;

    //修复当len=1时,curpage计算+得0的bug

    if(len>pageSize){

    curPage=((curPage+direct+len)%len);

    }

    else{

    curPage=1;

    }

    document.getElementById("pages").InnerHTML="当前"+curPage+"/"+page+"页";

    begin=(curPage-1)*pageSize;//起始记录号

    end=begin+1*pageSize-1;//末尾记录号

    if(end>len)end=len;

    $("#trId tr").hide();//首先,设置这行为隐藏

    $("#trId tr").each(function (i){

    if((i>=begin&&i<=end))

    $(this).show();

    });

    }

    </script>

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

    using DAL;

    using BLL;

    using Model;

    namespace PagingTestDome1

    {

    public partial class Index:System.Web.UI.Page

    {

    protected void Page_Load(object sender,EventArgs e)

    {

    if(!IsPostBack){

    Bind();

    }

    }

    protected void Bind(){

    BLL.tbl_goods goods=new BLL.tbl_goods();

    IList<Model.tbl_goods> List=new List<Model.tbl_goods>();

    List=goods.GetList();

    rp_news.DataSource=List;

    rp_news.DataBind();

    }

    protected void rp_news_ItemDataBound(object sender,RepeaterItemEventArgs e)

    {

    if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType=ListItemType.AlternatingItem)

    {

    Panel pn=(Panel)e.Item.FindControl("plItem");

    Label id=(Label)pn.FindControl("lb_ID1");

    Label name=(Label)pn.FindControl("lb_name");

    id.Visible=false;

    ((ImageButton)e.Item.FindControl("lbtDelete")).Attributes.Add("onclick",string.Format("JavaScript:return confirm('你确认要删除{0}吗');",name.Text));

    }

    }

    protected void rp_news_ItemCommand(object source,RepeaterCommandEventArgs e)

    {

    if(e.CommandName=="Delete")

    {

    Panel pn=(Panel)e.Item.FindControl("plItem");

    Label id=(Label)pn.FindControl("lb_ID1");

    int ID=Convert.ToInt32(id.Text);

    BLL.tbl_goods goods=new BLL.tbl_goods();

    goods.Delete(ID);

    Response.Write("<script>alert('删除成功!!!')</Script>");

    Bind();

    }

    }

    }

    这里的删除按钮是用得ImageButton,这是一个提交按钮,所以点击了之后页面会刷新。

    在不能改动太大的前提下,要达到我所需要的效果。

    有一个思路就是将当前的页码保存下来,点击删除按钮后,通过jQuery控制它跳到保存下来的页码的那一页

    但是在前台页码中,分页处的代码都是html标签,不具有保存页码的功能,所以就需要改下前台的代码了。

    将分页处的input标签:

    <input style="40px;height:16px;"maxlength=“5“ id="changePage"/>

    改为TextBox:

    <aspx:TextBox ID="changePage" runat="server" Width="40" Height="16" MaxLength="5"></aspx:TextBox>

    用asp.net所带的TextBox来保存页码就可以了

    那么,分页的jQuery也需要改一下了

    <script type="text/javascript">

    var pageSize=5;

    var curPage=0;

    var lastPage;

    var direct=0;

    var len;

    var page;

    var begin;

    var end;

    var cPage=0;

    $(document).ready(function display(){

    len=$("#trId tr").length;

    page=len%pageSize==0?len/pageSize:Math.floor(len/pageSize)+1;

    if(document.getElementById("changePage").value*1==""){

    curPage=1;

    displayPage(1);

    }

    else{

    curPage=document.getElementById("changePage").value*1;

    displayPage(curPage);

    }

    document.getElementById("pages").innerHTML="当前"+curPage+"/"+page+"页";

    document.getElementById("sjzl").innerHTML="数据总量"+len+"";

    $("#btn_first").click(function firstPage(){

    curPage=1;

    direct=0;

    displayPage();

    $("#changePage").val(curPage);

    });

    $("#btn_previous").click(function frontPage(){

    direct=1;

    displayPage();

    $("#changePage").val(curPage);

    });

    $("#btn_next").click(function nextPage(){

    direct=1;

    displayPage();

    $("#changePage").val(curPage);

    });

    $("#btn_change").click(function lastPage(){

    curPage=page;

    direct=0;

    displayPage();

    $("#changePage").val(curPage);

    });

    $("#btn_change").click(function changePage(){

    curPage=document.getElementById("changePage").value*1;

    if(!/^[1-9]d*$/.test(curPage)){

    alert("请输入正整数");

    return;

    }

    if(curPage>page){

    alert("超出数据页面");

    return;

    }

    direct=0;

    displayPage();

    });

    });

    function displayPage(){

    if(curPage<=1&&direct==-1){

    direct=0;

    alert("已经是第一页了");

    return;

    }

    else if(curPage>=page&&direct==1){

    direct=0;

    alert("已经是最后一页了");

    return;

    }

    lastPage=curPage;

    //修复当len=1时,curPage计算得0的bug

    if(len>pageSize){

    curPage=((curPage+direct+len)%len);

    }

    else{

    curPage=1;}

    document.getElementById("pages").innerHTML="当前"+curPage+"/"+page+"页";

    begin=(curPage-1)*pageSize;

    eng=begin+1*pageSize-1;

    if(end>len)end=len;

    $("#trId tr).hide();

    $("#trId tr").each(function(i){

    if((i>=begin&&i<=end));

    $(this).show();

    });

    }

    </script>

  • 相关阅读:
    Adb connect监听指定的主机和端口/Adb监听Visual Studio Emulator for Android模拟器
    Adb工具常用操作-转(二)
    Adb工具常用操作(一)
    Android手机开发者模式设置
    C#生成验证码实例
    vs中debug和release版本的区别(转)
    HTML5 Canvas实现刮刮卡效果实例
    HTML5 canvas createRadialGradient()放射状/圆形渐变
    Axure RP 8.0正式版下载地址 安装和汉化说明
    CSS的clip-path(转)
  • 原文地址:https://www.cnblogs.com/zzp0320/p/7054248.html
Copyright © 2011-2022 走看看