让aspx页面自主控制调用记录的数量,类型,随时更改,不用重新编译的实现方法

 更新时间:2021年9月22日 10:19  点击:1576
然而,杀鸡焉用牛刀,对于小型站点,我们完全可以从.net强大的功能中,翻出一些来方便我们使用.
我们知道一个页面经常会调用很多数据,有列表,有单条的,特别是列表,我们经常为不同的列表在.cs文件写不同的方法,一一采用"列表.DataSource=数据源;列表.DataBind();来完成绑定,这令到我们的 cs页面雍肿不堪!!!我经常有要推倒重来的冲动,但周而复始,我又写出一堆拉圾-_-!.好吧,这次我决定只写一个方法,不到15行的方法,就满足整个页面文章的调用.

我们需要用到的常识有"后期绑定","先运行CS再aspx",相信大家都已经具备.我们言归正传:
第一步:首先在cs中定义一个受保护的方法:
复制代码 代码如下:

/// <summary>
/// 获取新闻数据列表
/// </summary>
/// <param name="num">请求数量</param>
/// <param name="cateId">类别ID</param>
/// <param name="isTop">是否置顶</param>
/// <param name="isCommend">是否推荐</param>
/// <returns>一个新闻数据集,News是新闻,当然,List<XXXX>名称取决于你的数据源</returns>
protected List<News> GetNewsData(int num,int cateId,int isTop,int isCommend){
if (num < 0) num = 0;
List<News> result = new List<News>();
Expression<Func<News, bool>> expr = PredicateExtensionses.True<News>();
if (isPic) {
expr = expr.And(c => c.IsPic == 1);
}
if (cateId > 0) {
expr = expr.And(c => c.cateId == cateId);
}
if (isTop > -1) {
expr = expr.And(c => c.IsTop == isTop);
}
if (isCommend > -1) {
expr = expr.And(c => c.IsCommend == isCommend);
}
return nm.AllNews.Where(expr).OrderByDescending(c=>c.ID).Take(num).ToList();
}

第二步:在Page_Load方法中,调用DataBind();
复制代码 代码如下:

protected void Page_Load(object sender, EventArgs e)
{
DataBind();
}

以上是我方法的全部,这里要说一下的是调用业务逻辑中一个创建表达式树的公共类,这个类在这里(https://www.jb51.net/article/28043.htm ),及通用业务逻辑类;
第三步,接下来是我们的aspx调用了.这里我用最简单的Repeater来说明!
复制代码 代码如下:

<asp:Repeater ID="Repeater6" runat="server" DataSource='<%#GetNewsData(10,3548,-1,-1)%>'>
<ItemTemplate>
<%#Eval("Subject")%>
</ItemTemplate>
</asp:Repeater>

好了,所有工作结束.以后要调用其它的类别,或者数量要改变时,只需要在页面上改动就行了,不需要改动.cs和编译!
是不是挺方便?
关于DataBind()的说明,为什么要在Page_load中写DataBind(),这是提前给数据源以数据!否则,因为后期绑定的关系,会令到数据控件找不到数据源而报错!
[!--infotagslink--]

相关文章

  • C#实现线程安全的简易日志记录方法

    这篇文章主要介绍了C#实现线程安全的简易日志记录方法,比较实用的功能,需要的朋友可以参考下...2020-06-25
  • 使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)

    最近接了个项目需要开发一个app项目,由于是第一次接触这种app开发,经过一番思考,决定使用Vue3+Vant前端组件的模式进行开发,下面把问题分析及实现代码分享给大家,需要的朋友参考下吧...2021-06-10
  • IIS&Apache 攻击记录分析篇

    每个网管最黑暗的时候莫过于服务器被攻击后的束手无策,其实服务器遭受攻击后,服务器的记录文件详细地记录了黑客活动的蛛丝马迹。...2016-01-27
  • MySQL系列之十一 日志记录

    这篇文章主要介绍了MySQL日志文件详解,本文分别讲解了错误日志、二进制日志、通用查询日志、慢查询日志、Innodb的在线redo日志、更新日志等日志类型和作用介绍,需要的朋友可以参考下...2021-07-03
  • Swift使用CoreData时遇到的一些填坑记录

    这篇文章主要给大家记录了在Swift使用CoreData时遇到的一些坑,以及介绍了CoreData在Swift 3.0中的一点改变,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。...2020-06-30
  • php php 删除mysql 记录教程

    我们用php 删除mysql里面的数据代码,这个实例很简单根据用户输入的或提交的信息来查找数据库合条件的信息进行删除 <?php //连接数据库 $link_id = mysql_con...2016-11-25
  • mysql修改记录时update操作 字段=字段+字符串

    这篇文章主要介绍了mysql修改记录时update操作 字段=字段+字符串,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-04
  • Apache2关闭 VirtualHost的Log日志记录

    Web server(ex: Apache2、Nginx..) 的存取留下 Log 可以观察很多东西、追踪、找问题 等等, 但是量太大的时候, 另外一个困扰也会出现, IO 吃紧, Loading 随著?高. 查官方...2016-01-28
  • php mysql 删除记录( url传值删除数据)

    本款删除数据代码是一款根据用户url地址栏传过来的参数,再去mysql数据库中执行删除操作哦。 代码如下 复制代码 $host = 'localhost'; $us...2016-11-25
  • SQL重复记录查询的几种方法

    SQL重复记录查询的几种方法,需要的朋友可以参考一下...2020-07-11
  • Python csv文件记录流程代码解析

    这篇文章主要介绍了Python csv文件记录流程代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-16
  • php fopen实现mysql错误日志记录

    分享一篇关于php fopen实现mysql错误日志记录用法,因为数据库出错了我们肯定不能把错误日志保存到数据库了,所以我们利用了fopen来记录哦,有需要的朋友参考一下。 ...2016-11-25
  • 工作中的几个Drupal小问题记录总结

    以下是最近工作中总结的几个Drupal小问题,Drupal性能模块之简明分析对比,实现view动态输出的步骤方法,为Drupal主题添加主题内自带图片的正确方法。其中第一个是在网上找...2016-11-25
  • 利用redis实现聊天记录转存功能的全过程

    社交类软件聊天功能必不可少,聊天记录存储的方式也比较多,比如文本,数据库,云等等,但是最好的选择还是redis进行存储,这篇文章主要给大家介绍了关于如何利用redis实现聊天记录转存功能的相关资料,需要的朋友可以参考下...2021-08-03
  • asp.net中获取新增加记录的ID Access版

    在实际开发中有时需要获取新增加的记录的ID。如以新增加ID为文件名生成静态页等...2021-09-22
  • Global.asax的Application_Error实现错误记录/错误日志的代码

    本文为大家介绍下利用Global.asax的Application_Error实现错误记录,具体如下,有此需求的朋友可以参考下,希望对大家有所帮助...2021-09-22
  • .NET中获取Access新增记录Id怪现象解决方法

    写了一个函数获取Access表中指定用户Id,要求当传入的用户名不存在时,则在表中新增一条记录并返回Id...2021-09-22
  • C++获取多浏览器上网历史记录示例代码(支持获取IE/Chrome/FireFox)

    这篇文章主要介绍了C++获取多浏览器上网历史记录示例代码,支持获取IE, Chrome,FireFox等浏览器...2020-04-25
  • C++键盘记录程序代码

    这篇文章主要介绍了C++键盘记录程序代码,是Windows应用程序开发中非常实用的功能,该功能也常被一些远程操控程序所实用,需要的朋友可以参考下...2020-04-25
  • 浅谈C# 9.0 新特性之只读属性和记录

    这篇文章主要介绍了C# 9.0 新特性之只读属性和记录的的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以参考下...2020-11-03