PageAdmin网站内容管理系统(CMS)交流论坛

注册

 

QQ登录

只需一步,快速开始

发新话题 回复该主题

如何决解搜索模板无法使用PageInfo分页 [复制链接]

1#
代码如下:
[code]
        <h2 style="float:left; line-height:60px;">以下是有关“@keyword”的搜索结果</h2>
        @{
          PageInfo pageInfo = new PageInfo()
          {
            PageSize = 10,
            CurrentPage = (int)ViewBag.CurrentPage
          };
          foreach (var item in Html.InfoDataList(new { ColumnId = 203 }, "[title] like @title", new { title = "%" + keyword + "%" }))
          {
            string url = Html.InfoDataUrl((int)item.ColumnId, (int)item.Id);
            var intro = item.Intro;    //获取自定义简介
            string lmmc = Html.ColumnName((int)item.ColumnId);    //获取栏目名称
        <!--news_list-->
        <div class="news_list">
          <div class="pic"><a href="@url" onmouseenter="tplBoxMoveUp(this)" onmouseleave="tplBoxMoveDown(this)"  style="height:180px; overflow:hidden;" target="_blank"><img src="@(item.Thumbnail)" style="width:100%" /></a></div>
          <ul>
            <li>
              <h3><a href="@url" target="_blank">@item.Title</a></h3>
            </li>
            <li>所在栏目:<samp style="color3aba55;"><b>@lmmc</b></samp> —— @item.Thedate.ToString("yyyy-MM-dd")</li>
            <li>@intro<a href="@url" target="_blank">查看全文</a></li>
          </ul>
        </div>
        }
       }
        <!--news_list-->
[/code]
这些代码作为搜索模板页在打开的时候搜索的时候就会出现“无法将 null 转换为“int”,因为后者是不可以为 null 的值类型”的错误



已知原因是由于这个搜索模板没有被栏目调用导致的,如果栏目调用了这个搜索模板那么打开该栏目是没有问题,但是输入关键词跳转到搜索结果页还是存在这个问题的,那么如何决解搜索模板无法使用PageInfo分页呢?

分享 转发
TOP
2#

ViewBag.CurrentPage这个不能在自定义模板中用,因为自定义页面的url地址是规则的,只能自己去获取分页代码,比如地址是:/aa/1/ ,/aaa/2/
后面的数字是页面,需要自己去分割字符串获取
比如
var url=Html.PagePath(); //获取当前页面地址
var arrayUrl=url.Split("/"); //对地址进行分割
var page=StringHelper.Format<int>(arrayUrl[1]);//获取当前页码替换掉 ViewBag.CurrentPage

实际做模板时候还需要进行很多判断,比如默认第一个是:/aa/
就需要对url进行判断,如果没有后面分页, page默认就是1。
TOP
3#

回复 2楼xiyou的帖子

好的  我试试  谢谢大佬
TOP
4#

楼主的搜索页做好了吗?可以给个模板看看不?
TOP
发新话题 回复该主题