您的位置:首页> 日志> 动易系统 正文

目前新系统领导信箱默认无法对信件分类显示。但通过模板标签的改造依然可以实现的。下面提供解决办法

 
首页实现信件分类展示效果

 
首页中进行分类展示比较好办,只需要复制多一个标签把 letterTypeId 参数加上去,再增加一个筛选条件就可以了,如上图
最后调用标签时加上参数即可
@Power.Partial("Petition", "公开信访列表-按分类", new { dateFormats = "yyyy-MM-dd", outCount = 6, TitleLength = 70, letterTypeId = 1 })
 
 
那列表页该如何处理呢
  1. @*公开信件列表页模板*@ 
  2. @{ 
  3.     Layout = "~/Views/Main/Layout/公共布局页.cshtml"
  4.     ViewBag.PageTitle = "查看公开信件列表_" + CurrentSite.Instance.SiteTitle; 
  5.     var petitionLetterTypeId = Convert.ToInt32(Request["letterTypeId"]); 
  6.     var petitionLetters = new PetitionLetterService().GetPublicityPagedList(10,  l => (petitionLetterTypeId == 0) ? true : l.PetitionLetterTypeId == petitionLetterTypeId, ""); 
  7.     ViewBag.bodyClass = "petitionListPage"
  8.     ViewBag.NavigationIdentifier.Add("zmhd1"); 
  9.     var node = new NodeService().GetNodeByIdentifier("zmhd1"); 
  10.     int count = 0; 
  11.     var even = string.Empty; 
  12.     var keyword = ViewBag.Keyword; 
  13.     if (keyword != null
  14.     { 
  15.         petitionLetters = petitionLetters.Where(x => x.Title.Contains(keyword)).ToList(); 
  16.     } 
  17.     var nodename = node.ParentNode().NodeName; 
打开公开信件列表页模板,增加修改这两行代码
 
    var petitionLetterTypeId = Convert.ToInt32(Request["letterTypeId"]);
    var petitionLetters = new PetitionLetterService().GetPublicityPagedList(10,  l => (petitionLetterTypeId == 0) ? true : l.PetitionLetterTypeId == petitionLetterTypeId, "");
 
Request["letterTypeId"]  /*获取letterTypeId传值*/
 
Convert.ToInt32()   /*强制转换为整数型。注意:如果letterTypeId为null,返回值为0*/
 
(petitionLetterTypeId == 0) ? true : l.PetitionLetterTypeId == petitionLetterTypeId
/*这里做一个判断,如果petitionLetterTypeId = 0,才做筛选,否则输出全部。这里是为仿止letterTypeId为null时传入值为0的筛选结果*/
 
 最后我们就可通过地址栏传入值进行分类列表展示了。
/petition/list?letterTypeId=1
最后一步,相信大家都知道怎么做了,把节点设置为链接节点,然后设置对应的信件类型ID传值地址“/petition/list?letterTypeId=1”
 
 
最后还有一个疑问就是信访系统可以上述这样处理,咨询系统分类展示可以实现吗?
咨询系统在前台视图代码设计上和信仿系统并没有太大区别,用上述方法,把petitionLetterTypeId 替换为 letterTypeId,同样是可以实现咨询分类展示功能。