我在model里定义了一个
public class pageInfo
{
public int pageSize { get; set; }
public int pageCount { get; set; }
}
controller:
public ActionResult Index(int? p)
{
if (!p.HasValue) p = 1;
pageInfo page = new pageInfo();
page.pageSize = 3;
page.pageCount = BookBll.PageRecodCount();
DataTable dt = BookBll.dtPage(page.pageSize,p);
return View(dt);
}
在view中怎么用model时原pageSize,pageCount呢?
@Html.Pager("p",pageSize,pageCount)
public class pageInfo
{
public int pageSize { get; set; }
public int pageCount { get; set; }
}
controller:
public ActionResult Index(int? p)
{
if (!p.HasValue) p = 1;
pageInfo page = new pageInfo();
page.pageSize = 3;
page.pageCount = BookBll.PageRecodCount();
DataTable dt = BookBll.dtPage(page.pageSize,p);
return View(dt);
}
在view中怎么用model时原pageSize,pageCount呢?
@Html.Pager("p",pageSize,pageCount)
解决方案 »
- 后台拼接的表格,怎么样在表格中添加服务器控件
- 各位大侠,我用jquery和jtree.js做的项目在本地运行没问题,发布虚拟主机点击几次后就会现脚本错误并且读不到出数据!请各位大侠帮忙解决这个问题,感激不尽
- 高分求教:用自己的图片,如何实现google maps的功能?
- asp.net网页跳转问题
- ajax.net 访问数据库
- 一个非常简单的问题,在线等,大家帮帮忙
- 关于水晶报表分组的问题(急,急)
- 急!!这个sql在oracle中如何写
- 小女子求助!!! 摆弄两天了,大家帮我看看!!!
- hashtable的疑问!重复健。不重复健?????
- .aspx删除次表关联的信息
- 一個加密鎖dll本地vs調試沒有問題iis發佈后提示尝试读取或写入受保护的记忆体。这通常表示其他记忆体已损毁
这句话怎么就看不懂。
@Html.Pager("p",Model.pageSize,Model.pageCount)
时点.后面的不出来
MvcPager
<div style="text-align: left; border-bottom: 1px solid #808080;">
@Html.Partial("~/Views/Shared/_NetMvc3Page.cshtml", Model)
</div>Controllers /// <summary>
/// 获取展示节点列表
/// </summary>
/// <returns></returns>
public ActionResult FPage(Models.MvcPage Model)
{
List<ModelsXX> n3list =数据源;
//分页数据源。
int SkinCount = (Model.CurrentPageIndex - 1) * Model.PageSize; List<ModelsXX> datesource = n3list;//要分页的数据源
Model.PageList = datesource.Where(r => r.ID >= 0).Skip(SkinCount).Take(Model.PageSize).ToList(); Model.TotalCount = datesource.Count;//获取记录总数
if (Request.IsAjaxRequest()) //是AJAX请求的话返回AJAX分页数据
{
Model.IsAjax = true;
return View(Model);
}
else
{
Model.IsAjax = false;
return View(Model);
}
}~/Views/Shared/_NetMvc3Page.cshtml:@model NTMvc.Models.INetMvc3Page
@if (Model.TotalPage > 0 && Model.CurrentPageIndex <= Model.TotalPage)
{ <div id="mvcpager">
<span style="display: none">分页控件模板</span>
@if (Model.CurrentPageIndex > 1)
{
<a href="javascript:gotopage(1,@Model.TotalPage)" style="margin-right:10px;">首页</a>
<a href="javascript:gotopage(@(Model.CurrentPageIndex - 1),@Model.TotalPage)" style="margin-right:10px;">
前页</a>
}
else
{
<a disabled="disabled" style="margin-right: 10px;">首页</a>
<a disabled="disabled" style="margin-right: 10px;">前页</a>
}
@if (Model.PageFirst > 1)
{
<a href="javascript:gotopage(@(Model.PageFirst - 1),@Model.TotalPage)" style="margin-right:10px;">
. .</a>
}
<script type="text/javascript">
var totalPage = 0;
function gotopage(pageIndex, LastPage) {
totalPage = LastPage;
document.getElementById('CurrentPageIndex').value = pageIndex;
document.getElementById('mvcpager_btnchk').click();
}
function checkInput(totalPage, isAjax) {
totalPage = totalPage;
var pageIndexStr = document.getElementById('CurrentPageIndex').value;
if (pageIndexStr == "") {
alert('请输入页码'); document.getElementById('CurrentPageIndex').focus();
document.getElementById('CurrentPageIndex').select();
return false;
}
var pageIndex = parseInt(pageIndexStr);
var r = new RegExp("^\\s*(\\d+)\\s*$");
if (r.test(pageIndex)) {
if (RegExp.$1 < 1 || RegExp.$1 > totalPage) {
alert("页索引超出范围!");
document.getElementById('CurrentPageIndex').focus();
document.getElementById('CurrentPageIndex').select();
return false;
}
if (isAjax) {
getAjaxPageDate(pageIndex);
return false;
} else {
document.getElementById('mvcpager_btn').click();
return true;
} }
alert("页索引不是有效的数值!");
document.getElementById('CurrentPageIndex').focus();
document.getElementById('CurrentPageIndex').select();
return false;
}
</script>
@for (int i = 0; i < Model.DispPageCount; i++)
{
if ((Model.PageFirst + i) <= Model.TotalPage)
{
if (Model.CurrentPageIndex == (Model.PageFirst + i))
{
<a href="javascript:gotopage(@(Model.PageFirst + i),@Model.TotalPage)" style="margin-right:10px;color:#FF0000;">@(Model.PageFirst + i)</a>
}
else
{
<a href="javascript:gotopage(@(Model.PageFirst + i),@Model.TotalPage)" style="margin-right:10px;">@(Model.PageFirst + i)</a>
}
}
}
@if ((Model.PageFirst + Model.DispPageCount) <= Model.TotalPage)
{
<a href="javascript:gotopage(@(Model.PageFirst + Model.DispPageCount),@Model.TotalPage)" style="margin-right:10px;">
. .</a>
}
@if (Model.CurrentPageIndex < Model.TotalPage)
{
<a href="javascript:gotopage(@(Model.CurrentPageIndex + 1),@Model.TotalPage)" style="margin-right:10px;">
后页</a>
<a href="javascript:gotopage(@Model.TotalPage,@Model.TotalPage)" style="margin-right:10px;">
尾页</a>
}
else
{
<a disabled="disabled" style="margin-right: 10px;">后页</a>
<a disabled="disabled" style="margin-right: 10px;">尾页</a>
}
<span> 转到</span>
<input type="text" onclick="this.select()" value="@Model.CurrentPageIndex" name="CurrentPageIndex" id="CurrentPageIndex" style="width:30px;" /><span>页</span>
<input type="button" value="Go" id="mvcpager_btnchk" onclick="return checkInput(@Model.TotalPage,@(Model.IsAjax == true ? 1 : 0))" />
<input type="submit" style="display: none" value="Go" name="mvcpager" id="mvcpager_btn" />
@* 这样写的作用是防止客户端禁用js或者js出错导致提交。*@
</div>
}
class INetMvc3Page: /// <summary>
/// 当前页
/// </summary>
public int _CurrentPageIndex = 1;
public int CurrentPageIndex
{
get
{
return _CurrentPageIndex;
}
set
{
_CurrentPageIndex = value;
}
}
int _DispPageCount = 10;
/// <summary>
/// 条目显示的页数
/// </summary>
public int DispPageCount
{
get
{
return _DispPageCount;
}
set
{
_DispPageCount = value;
}
} int _PageSize = 10;
/// <summary>
/// 每页记录数 默认20条记录一页
/// </summary>
public int PageSize
{
get
{
return _PageSize;
}
set
{
_PageSize = value;
}
}
public int TotalCount { get; set; }
/// <summary>
/// 获取总页数
/// </summary>
public int TotalPage
{
get
{
int PageCount = 0;
if (PageSize > 0 && TotalCount > 0)
{
PageCount = TotalCount / PageSize;
int Count = TotalCount % PageSize;
if (Count > 0)
{
PageCount = PageCount + 1;
}
}
return PageCount;
}
}
public int PageFirst
{
get
{
int result = 1;
//当前页大于要显示的页。起始页肯定不是第一页
if (CurrentPageIndex > _DispPageCount)
{
int num = (CurrentPageIndex % _DispPageCount);
if (num > 0)
{
result = ((CurrentPageIndex / _DispPageCount) * _DispPageCount) + 1;
}
else
{
result = (((CurrentPageIndex / _DispPageCount) - 1) * _DispPageCount) + 1;
}
}
return result;
} } /// <summary>
/// 是否Ajax分页 待以后实现
/// </summary>
public bool IsAjax { get; set; }class MvcPage : INetMvc3Page: public List<ModelsXX> PageList { get; set; }
其他页面分页在这个页面声明集合。
pageHelper:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using System.Text;
using System.Web.Mvc.Html;namespace Test.Models.WebPager
{
public static class PagerHelper
{
/// <summary>
/// 分页Pager显示
/// </summary>
/// <param name="html"></param>
/// <param name="currentPageStr">标识当前页码的QueryStringKey</param>
/// <param name="pageSize">每页显示</param>
/// <param name="totalCount">总数据量</param>
/// <returns></returns>
public static MvcHtmlString Pager(this HtmlHelper html, string currentPageStr, int pageSize, int totalCount)
{
var queryString = html.ViewContext.HttpContext.Request.QueryString;
int currentPage = 1; //当前页
int.TryParse(queryString[currentPageStr], out currentPage); //与相应的QueryString绑定
var totalPages = Math.Max((totalCount + pageSize - 1) / pageSize, 1); //总页数
var dict = new RouteValueDictionary(html.ViewContext.RouteData.Values);
var output = new StringBuilder();
foreach (string key in queryString.Keys)
if (queryString[key] != null && !string.IsNullOrEmpty(key))
dict[key] = queryString[key];
if (totalPages > 1)
{
if (currentPage != 1)
{//处理首页连接
dict["p"] = 1;
output.AppendFormat("{0} ", html.RouteLink("首页", dict));
}
if (currentPage > 1)
{//处理上一页的连接
dict["p"] = currentPage - 1;
output.Append(html.RouteLink("上一页", dict));
}
else
{
output.Append("上一页");
}
output.Append(" ");
int currint = 5;
for (int i = 0; i <= 10; i++)
{//一共最多显示10个页码,前面5个,后面5个
if ((currentPage + i - currint) >= 1 && (currentPage + i - currint) <= totalPages)
if (currint == i)
{//当前页处理
output.Append(string.Format("[{0}]", currentPage));
}
else
{//一般页处理
dict["p"] = currentPage + i - currint;
output.Append(html.RouteLink((currentPage + i - currint).ToString(), dict));
}
output.Append(" ");
}
if (currentPage < totalPages)
{//处理下一页的链接
dict["p"] = currentPage + 1;
output.Append(html.RouteLink("下一页", dict));
}
else
{
output.Append("下一页");
}
output.Append(" ");
if (currentPage != totalPages)
{
dict["p"] = totalPages;
output.Append(html.RouteLink("末页", dict));
}
output.Append(" ");
}
output.AppendFormat("{0} / {1}", currentPage, totalPages);//这个统计加不加都行
return new MvcHtmlString(output.ToString());
}
}
}controller:
public ActionResult Index(int? p=1)
{
pageInfo page = new pageInfo();
page.pageSize = 3;
page.pageCount = BookBll.PageRecodCount();
DataTable dt = BookBll.dtPage(page.pageSize,p); ViewBag.size = page.pageSize;
ViewBag.count = page.pageCount;
return View(dt);
}pageInfo:
public class pageInfo
{
public int pageSize { get; set; }
public int pageCount { get; set; }
}View:
@model System.Data.DataTable@{
ViewBag.Title = "Index";
}<table border="1">
<tr>
<th>编号</th><th>作者</th><th>书名</th><th>日期</th><th colspan="3">操作</th>
</tr>
@foreach (System.Data.DataRow dr in Model.Rows)
{
<tr onmouseover="this.style.backgroundColor='#ff0000'" onmouseout="this.style.backgroundColor=''" > <td>@dr["ID"]</td>
<td>@dr["BUser"]</td>
<td>@dr["BName"]</td>
<td>@dr["BDate"]</td>
<td>@Html.ActionLink("编辑", "Edit", new { ID=dr["ID"]})</td>
<td>@Html.ActionLink("详细", "Details", new { ID=dr["ID"]})</td>
<td>@Html.ActionLink("删除", "Delete", new { ID=dr["ID"]})</td>
</tr>
}
<tr></tr>
</table>
@using [email protected] /
@[email protected]("p", 3,11)
这个11为记录的总条数,怎么写让一个变量把11给换掉呢
@ViewBag.count
提示错误:静态方法不能用动态参数。