看到园友的一篇文章,说在一些企业门户站点里,我们经常会去根据需求变更来修改数据绑定的筛选条件,深有同感。而诸如企业门户这些场景一般也不用考虑什么性能之类的非业务要求,尽快的完成业务变更和尽可能少的减少网站编译更新次数却是网站技术支持团队的核心竞争力之所在。

不妨设想一下,如果用Store Procedure+DAL+BLL 写好的一个列表查询,如果要适应查询条件变更,则要动的地方恐怕很多,还需要重新编译,再把一堆dll更新上去。。。

看了“活跃的毛虫”兄弟的代码,本人也有所感悟,在此也分享一种更加“动态”的绑定方法:

大家知道,在.NET3.5以来,与Linq同时也提供了很多针对泛型集合的扩展方法,如Where/Take/OrderBy...等等。

在这样的场景中, 这些扩展方法也可以大有用场。比如下面的例子:

<p>
        <asp:GridView ID="GridView1" runat="server" DataSource='<%#GetNewsData().Where(r=>r.Subject.StartsWith("aaa"))%>'>
        </asp:GridView>

</p>

public partial class About : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        DataBind();
    }

public static List<NewsData> GetNewsData()
    {
        List<NewsData> result = new List<NewsData>();

result.Add(new NewsData() { Subject = "aaaa" });
        result.Add(new NewsData() { Subject = "bbb" });
        result.Add(new NewsData() { Subject = "aa22" });
        result.Add(new NewsData() { Subject = "aa1" });

return result;
    }

public class NewsData
    {
        private string subject;

public string Subject
        {
            get { return subject; }
            set { subject = value; }
        }
    }

}

更加动态的实现了查询条件在aspx页内定义。

需要注意的是:

这种写法不适用于大型应用,每个页面实例的CPU和内存开销都不小。 而且对原始数据集合(未经筛选的数据集),最好能够做到一定的缓存,从减少不必要的IO开销。

不需编译让aspx页自主筛选数据绑定记录相关推荐

  1. win2003 IIS6,能访问html页 但是不能访问aspx页解决办法汇总

    win2003 sp2 系统.装上IIS6后,html正常访问,但是aspx页就是访问不了,日志文件也不做任何问题的记录. 全是网上资料,放一起,方便查找. 描述下目前遇到的问题: win2003 s ...

  2. iis只能访问html页面,win2003 IIS6,能访问html页 但是不能访问aspx页解决办法汇总

    win2003 sp2 系统.装上IIS6后,html正常访问,但是aspx页就是访问不了,日志文件也不做任何问题的记录. 全是网上资料,放一起,方便查找. 描述下目前遇到的问题: win2003 s ...

  3. c语言只需编译 不需连接,C语言程序设计-中国大学mooc

    C语言程序设计-中国大学mooc http://carrottt.blog.bokee.net    2020-6-9 转载自网课答案 (www.daanplus.com) : 完整答案请关注公众号[ ...

  4. OpenCV环境配置:Ubuntu18.04编译OpenCV4.2.0和contrib模块记录

    OpenCV环境配置:Ubuntu18.04编译OpenCV4.2.0和contrib模块记录 1.下载源码和安装依赖包 2.解压源码文件和配置路径 3.配置Cmake并编译OpenCV 4.导入Op ...

  5. history linux 日志服务器_编译bash实现history的syslog日志记录

    一.编译BASH实现bash的syslog日志记录功能 1. 本文将通过bash软件实现history记录到syslog日志的功能,并通过该方式可以实现实时的传送到了远端的日志集中服务器上,可以实现操 ...

  6. 计算机考试桌贴,Word2010邮件合并一页打印多条记录(考务数据、准考证号、桌贴、考试通知单)...

    很多人都使用过Word的邮件合并,但是仅仅知道每页只打印一条记录.实际上,邮件合并可以打印多条记录的.比如像考务数据里面的打印学生准考证号.考试桌贴.考试通知单等.常常需要一页打印多人的这些信息,如果 ...

  7. 编译内核指定模块,筛选当前模块依赖的组件

    关于内核模块编译的过程中,往往我们仅仅需要其中一个小的模块,但是却因为内核源码的庞杂而止步与模块依赖的筛选过程中. 为了更加便捷得对内核各个模块进行管理,这里提供一个小脚本来进行指定模块相关得模块留存 ...

  8. 产品列表页分类筛选、排序的算法实现(PHP)

    一.简单的单条件查询 工作都是从简单的开始,先从最简单的单表查询开始,这个一般用在首页以及一些比较独立的页面,只需要查找几个符合条件的产品展示出来即可,可以使用分页或者不使用分页.下面这个是产品控制器 ...

  9. ASPX页生成静态HTML页(五种方案)

    快速预览: GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList结合 GridView和CheckB ...

  10. 12月31日起涉线上支付的微信小程序需设置订单中心页

    微信公众平台运营中心发布公告:为进一步规范小程序交易生态.提升用户购物体验.满足用户在有交易的小程序中便捷查看订单信息的诉求,自 2022 年 12 月 31 日起,对于有"选择商品/服务- ...

最新文章

  1. 利用dsamain.exe挂载快照(活动目录快照配置管理系列四)
  2. Yii的GridView
  3. jetson nano 在opencv拉流的视频上显示中文汉字(含c++完整源码)
  4. javascript call与apply关键字的作用
  5. 用webclient实现无空间上传文件错误:Could not find a part of the path .....
  6. 用Python+Appium自动写网课考试
  7. Ladon8.9扫描器简明教程/用法例子
  8. fedora14安装
  9. CodeMeter***大赛战况:百人参赛,无人摘金!
  10. 小程序列表倒计时使用wxs实现
  11. Java工程师和软件工程师的关系-蛙课网
  12. Tox协议官方文档翻译(一)
  13. C - Serval and Parenthesis Sequence
  14. ChatGPT连接企微
  15. Openlayers 快速上手教程
  16. 再论互联网公司盖楼那些事-东邪阿里
  17. 关于SQL数据库 msdb.dbo.sp_send_dbmail 函数发送邮件的场景分析
  18. 小清新公开课教育教学课件PPT模板
  19. 人工智能提纲式汇总+简要分析 可用于复习《人工智能——一种现代的方法》
  20. 集中式版本管理系统和分布式管理系统的区别-集中式vs分布式

热门文章

  1. weka矿产分布文件_石材人注意!北方暴雪将至,货车停运,石材停止发货!(附北方石材分布介绍)...
  2. eja智能压力变送器工作原理_eja变送器详解_eja变送器工作原理_eja变送器如何选型...
  3. golang-go mod版本等相关内容:
  4. docker 卸载镜像_docker删除所有容器和镜像命令
  5. Android自定义百分数进度条
  6. 使用at任务定点执行
  7. WPF入门教程系列二十——ListView示例(二)
  8. DroidDraw Android 界面设计工具使用
  9. 黄聪:php实现关键词高亮
  10. J2ME 模拟短信发送界面开发程序