方法是怎么实现和生成到页面的。找到RenderPager方法,我们拉到方法最后看到如下代码,这里是添加脚本到客户端。
if (!string.IsNullOrEmpty(pagerScript))
pagerScript = "<script language=\"javascript\" type=\"text/javascript\">" + pagerScript + "</script>";
在这个方面上面添加一下代码:首先我们判断下客户端是否需要每次分页都提交页面,然后加入我们的_PagePostSubmit这个js方法
if (_pagerOptions.IsPost)
{
//通过 _pagerOptions.FormName获得用户选定表单名称,修改其 action,然后提交。
pagerScript += " function _PagePostSubmit(href){ document.forms[''" + _pagerOptions.FormName + "''].action=href;document.forms[''" + _pagerOptions.FormName + "''].submit();}";
}
Ok,这样每个 a标签都能提交表单了,我们在页面添加下面代码就完成了查询+分页的实现
<%=Html.Pager<DepartmentInfo> ((Webdiyer.WebControls.Mvc.PagedList<DepartmentInfo>)ViewData ["deptlist"], new PagerOptions() { PageIndexParameterName = "id", CurrentPagerItemWrapperFormatString = "<span class=\"cpb\"> {0}</span>", NumericPagerItemWrapperFormatString = "<span class=\"item\"> {0}</span>", CssClass = "pages", SeparatorHtml = "",IsPost=true })%>
把刚加的 IsPost属性变为 true,默认FormName=form1这里就没有在赋值了。 |