求助:页面中的table分页显示

xs_xs_xs 2016-10-24 10:20:48
从数据库中读出来,有N行,控制为每页15个,分页显示。
应该怎么实现呢?


如下我们论坛的这类分!(首页 1 2 3 4 5 6 7 8 9 ...尾页 总数:(此表所有数据总和),共(被分成多少页))
...全文
704 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
猿某人、 2016-10-28
  • 打赏
  • 举报
回复
这部分功能已经解决了,感谢大家的指教!
永远的铁道兵 2016-10-28
  • 打赏
  • 举报
回复
美工出图,前端设计静态页面。 数据库程序员 写后端ASHX一般处理程序,并预留3个参数(SQL语句,当前页数,每页数目),按照静态界面去拼接HTML语句。 JS程序员通过AJAX接收,AJAX 调用分页函数。 我没学过ASP.NET各种服务器控件,一开始就遵循SP1234大神的建议,使用ashx+ajax+html,下面贴出我自己手工写的分页。 你要的答案,回归网页本源,都在里面。

        public string getData(string str,int size, int page)
        {
            StringBuilder strB = new StringBuilder();
            DataTable dt1 = GetData(str);
            int count = dt1.Rows.Count;
            if(count >0)
            {
            int page_count = count / size + 1; //总页数
            IList<page_class> Ilist =  JSONhelper.ModelConvertHelper<page_class>.ConvertToModel(dt1);
            List<page_class> list_table = Ilist.ToList<page_class>();

            List<page_class> return_list = new List<page_class>();

            if (count <= size)  //如果 查询表行数 小于等于 页面数
            {
                return_list = list_table.GetRange(0, count);
            }
            else  //如果 查询表行数 大于 页面数
            {
                if (count % size == 0)   // 查询行数 取模 等于0,余数为0,则都分配完
                {
                    return_list = list_table.GetRange((page - 1) * size, size);
                    
                }
                else
                {
                    if (page != (count / size + 1))  //查询行数 取整,当前页不等于最后1页
                    {
                        return_list = list_table.GetRange((page - 1) * size, size);
                    }
                    else  //查询行数取整,最后一页
                    {
                        return_list = list_table.GetRange((page - 1) * size, count % size);
                    }

                }
            }

          
            for (int i = 0; i < return_list.Count; i++ )
            {
                strB.Append(@"<div class='col-md-12'>
                            <div class='col-md-4'>
                            <div class='thumbnail'>");
                strB.Append("<img src='UploadFile/Content/" + return_list[i].img1 + "' alt='img'>");  //缩略图
                strB.Append("<div class='caption'>");
                strB.Append("<button class='btn btn-default btn-xs' value='" + return_list[i].img2 + "' >");
                strB.Append("<span class='glyphicon glyphicon-search'></span>"); //缩略图的 产品按钮
                strB.Append("</button>");
                strB.Append(@"</div>
                            </div>
                            </div>"); 
                strB.Append(@"<div class='col-md-8'>
                            <div>
                            <h5>");
                strB.Append("<div style='font-size:18px;font-weight: bold;'>" + return_list[i].name + "</div><br/>" + return_list[i].c5);  //主标题
                strB.Append("</h5>");
                strB.Append(return_list[i].contentEn);//简单介绍
                strB.Append("</div>"); 
                strB.Append("<button type='button' class='btn btn-default btn-xs' data-toggle='collapse' data-target='#page_btn_info" + i + "1' > Specification</button>"); //3个折叠按钮
                strB.Append("<button type='button' class='btn btn-default btn-xs' data-toggle='collapse' data-target='#page_btn_info" + i + "2' > Drawing</button>");
                strB.Append("<button type='button' class='btn btn-default btn-xs' data-toggle='collapse' data-target='#page_btn_info" + i + "3' > Download</button>");
                strB.Append("<div id='page_btn_info" + i + "1' class='collapse'>");//要更改ID名
                strB.Append(return_list[i].e1); //按钮1折叠内容
                strB.Append("</div><div id='page_btn_info" + i + "2' class='collapse'><br />");
                strB.Append(return_list[i].e2); //按钮2折叠内容
                strB.Append("</div> <div id='page_btn_info" + i + "3' class='collapse'>");//按钮3折叠内容
                strB.Append(return_list[i].e3); //按钮3折叠内容
                strB.Append(@"</div>
                              </div>
                              </div>");
            
                              

                if (i != return_list.Count-1)
                {
                    strB.Append("<div class='col-md-12'><div class='row' style='background-color:rgb(204,204,204); margin:10px;  height:1px;'></div></div>");
                }
            }

            //增加页数导航按钮
                int p = page==1?1:page-1;
                int n = page < page_count ? page + 1 : page_count;
                strB.Append("<div class='text-right'>");
                strB.Append("<div class='btn-group' id='nav_page_index'>");
                strB.Append("<button type='button' class='btn btn-default btn-xs  disabled'>Rows:" + count + "     Page:" + page + " / " + page_count + "</button>");
                strB.Append("<button type='button' class='btn btn-default btn-xs' value='1'>First</button>");
                strB.Append("<button type='button' class='btn btn-default btn-xs' value='" + p + "'>Prev</button>");
                strB.Append("<button type='button' class='btn btn-default btn-xs' value='" + n + "'>Next</button>");
                strB.Append("<button type='button' class='btn btn-default btn-xs' value='" + page_count + "'>Last</button>");
                strB.Append("</div></div>");

               

                 return strB.ToString();
            }
            else
            {
               return "<div>rows:0</div>";

            }
           
        
        }

    function page_change(str, page) {
                var set_json = '{ \"sql\": \"' + str + '",  \"page\": ' + page + ' }';
                $.ajax({
                    type: "POST",
                    url: "ashx/prohandler.ashx",
                    data: set_json,
                    success: function (message) {
                        $("#page_content").html("");
                        $("#page_content").append(message);

                    },
                    error: function (message) {
                        alert(message);
                    }
                });
            }
有人说,为什么不去用服务器控件或者第三方分页控件,我回答,因为强调个性。网页是彰显个性的地方。
xs_xs_xs 2016-10-27
  • 打赏
  • 举报
回复
引用 6 楼 Chinajiyong 的回复:
[quote=引用 4 楼 xs_xs_xs 的回复:]
自己写的分页还是用的插件?学会分析问题,为什么第一页有,第二页就没有[/quote] 通过这几天百度,看各种实例,然后自己慢慢写出来的! 分析了很久,也用过很多方法,比如用俩个不同的表,或者加个DIV,都实现不了!
xs_xs_xs 2016-10-27
  • 打赏
  • 举报
回复
引用 5 楼 sp1234 的回复:
[quote=引用 4 楼 xs_xs_xs 的回复:]
第一,你应该看你所使用的控件/组件的技术资料和教程。 第二,你应该自己调试,贴出调试结果。仅从你贴出的东西,谁知道你“到第二页”是怎么设计的呢?论坛是技术讨论的地方,没有那么多免费抄的东西。[/quote] 谢谢指教,刚学这个软件一个月,很多不懂的,而且也是第一次混论坛,不懂,以后还请多指教!
㤁孞 2016-10-27
  • 打赏
  • 举报
回复
两种选择:前台分页(把数据全部加载出来在程序里做处理),后台分页(直接根据sql在数据库中处理完毕之后加载出来)
EnForGrass 2016-10-27
  • 打赏
  • 举报
回复
引用 4 楼 xs_xs_xs 的回复:
自己写的分页还是用的插件?学会分析问题,为什么第一页有,第二页就没有
  • 打赏
  • 举报
回复
引用 4 楼 xs_xs_xs 的回复:
第一,你应该看你所使用的控件/组件的技术资料和教程。 第二,你应该自己调试,贴出调试结果。仅从你贴出的东西,谁知道你“到第二页”是怎么设计的呢?论坛是技术讨论的地方,没有那么多免费抄的东西。
xs_xs_xs 2016-10-27
  • 打赏
  • 举报
回复

EnForGrass 2016-10-25
  • 打赏
  • 举报
回复
用aspnetpager,有很多实例,还可以自定义分页样式 http://www.webdiyer.com/aspnetpager/demos/pagedrepeater.aspx
  • 打赏
  • 举报
回复
Grid+分页控件,至于自己写table吗?
xs_xs_xs 2016-10-24
  • 打赏
  • 举报
回复
这是部分代码↓
<table width="100%" border="0" cellpadding="0" cellspacing="1" class="TableAll">
<tr align="center" class="TrBody">
<td width="9%">序号</td>
<td width="14%" height="25">用户</td>
<td width="25%">操作内容</td>
<td width="21%">操作时间</td>
<td width="16%">IP</td>
<td width="15%">电脑系统</td>
</tr>
<% Str="Select * From XcOprLog Order By ID Desc"
Set Rs=Conn.execute(Str)
I=1
Do while Not Rs.eof
%>
<tr align="center" class="TrBody">
<td><%=I%></td>
<td height="25"><%=Rs("OprUser")%></td>
<td><%=Rs("OprInfo")%></td>
<td><%=Rs("OprTime")%></td>
<td><%=Rs("OprIP")%></td>
<td><%=Rs("OprSys")%></td>
</tr>
<%
I=I+1
Rs.MoveNext
Loop
%>
</table>

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧