[CodeProject每日一荐] SqlWhereBuilder ASP.NET 服务器控件

CodeProject上有不少好东东,图文并茂的文章和源码,看起来很有味道.我想为大家介绍一些吧.争取保持每天一个,这样促使自己学习和更新blog:). 只是介绍,不是翻译,尽量把作者的介绍部分翻译过来吧,把它的功能说清楚了,大家就有兴趣自己去看了.

SqlWhereBuilder ASP.NET 服务器控件 By Mike Ellison

SqlWhereBuilder是一个让用户定制sql中where查询条件的web控件.用户可以通过此界面定制多变的报表查询条件,开发人员可以通过GetWhereClause() 和 GetWhereClauseWithParameters() 方法在回传页面时把查询条件组装成sql中的WHERE子句.它设计时有两个主要的目标: (1)在客户端处理用户的交互,避免太多的回传;(2)充分利用ASP.NET服务器端的强大功能提高灵活性.

为满足前一个目标,客户端功能开发为一个单独的javascript库,控件在IE 6.0, FireFox 1.0, and Netscape 7.1测试通过,支持以下功能的浏览器应该都适用:javaScript 1.2, document.getElementById() 函数, innerHTML属性, CSS中none和inline的display属性.

为了后一个目标,控件支持开发者通过xml文件配置,能生成语法同IDbDataParameter的WHERE子句来与IDbCommand类型整合.文章介绍了此控件,描述了配置任务,并演示了如何得到WHERE子句,讲述了绘制和客户端服务器间传递条件的方法


[CodeProject每日一荐] SqlWhereBuilder ASP.NET 服务器控件

[CodeProject每日一荐] SqlWhereBuilder ASP.NET 服务器控件

SqlWhereBuilder 的UI包括如下部分:
(1)"条件"列表:  显示用户添加的条件
(2)"字段"下拉列表:  显示数据库的字段列表,用户从选择"字段"开始定制一个条件.
(3)"操作符"下拉列表:  选择"字段"后,根据开发者的配置显示合适的操作符.如文本字段可能对应"Is", "Is Not","Contains"和"Is Null"操作符,数字字段可能包含"Equals"和"Is Greater Than"等.操作符与sqlTemplates对应,sqlTemplates用来把条件转换成相应的WHERE子句.
(4)"值"区域:  "操作符"选择后,显示相应的"值"区域供用户来输入比较的值."值"区域作为<div>标签绘制,在选择某"操作符"时切换显示或隐藏,它包括文字或HTML,客户端脚本库支持text,radio类型的<INPUT>标签和<SELECT>标签."值"区域还可以使用UserControl(.ascx).上图中"值"区域只含一个文本框.

用户通过界面添加条件后显示在"条件"列表中,同时每个条件旁有删除和编辑按钮.在用户定制第一个以后的条件时,最前面会出现"与/或"下拉列表来满足需求.点击"编辑"按钮时,即可原地编辑

为使用SqlWhereBuilder控件,开发者要把javascript库文件复制到服务器合适的位置,并通过xml或代码来配置用户可见的"字段"下拉列表,"操作符"下拉列表和"值"区域.

你可能感兴趣的:(asp.net)