为了更好的去重用高级查询控件,将此控件做成用户控件。利用VS2005新建一个用控件扩展名为.ascx的文件,参考下图: 

       本高级查询的原理是:当用户选择选择内容时,相应的筛选条件,筛选范围进行动态的变化。将筛选条件保存在lblFilter标签中。利用DataView的RowFilter,对数据进行筛选,但为了更好的管理,将这些配置信息保存在表中。注:以下是对应的html源代码:

 

/>

        以下是本页面对应的后台代码,主要是事件,属性,方法

高级查询--asp.net(C#)using System;
高级查询--asp.net(C#)
using System.Data;
高级查询--asp.net(C#)
using System.Configuration;
高级查询--asp.net(C#)
using System.Collections;
高级查询--asp.net(C#)
using System.Web;
高级查询--asp.net(C#)
using System.Web.Security;
高级查询--asp.net(C#)
using System.Web.UI;
高级查询--asp.net(C#)
using System.Web.UI.WebControls;
高级查询--asp.net(C#)
using System.Web.UI.WebControls.WebParts;
高级查询--asp.net(C#)
using System.Web.UI.HtmlControls;
     另外,本用户控件还需要调用后台的类库,进行一些业务逻辑上的处理代码如下:
高级查询--asp.net(C#)using System;
高级查询--asp.net(C#)
using System.Collections.Generic;
高级查询--asp.net(C#)
using System.Text;
高级查询--asp.net(C#)
using System.Web.UI.WebControls;
高级查询--asp.net(C#)
using System.Data;
高级查询--asp.net(C#)
using System.Data.SqlClient;
高级查询--asp.net(C#)
高级查询--asp.net(C#)
namespace WebClass

      在本类库需要调用最基层的DBClass,是对数据库的最基村的操作,主要是进行读取数据,获取数据集的操作,在这里,不做详细书写。
       经过编译成功后,新建网页,将此用户控件拖动到需要进行的页面。进行以下的编码,主要是设置GridView控件的ID,数据源注意使DataView,在这里可以将DataSet转换成DataView,可以在页面上一个按钮,高级查询,单击后,加载用户控件如下图所示:

我们可以看到,在它的下面是个GridView控件
这后我们对PageLoad,和图片中的高级查询按钮进行编写代码,如下:

高级查询--asp.net(C#)public WebClass.Customer myCustomer = new WebClass.Customer();
高级查询--asp.net(C#)
protected void Page_Load(object sender, EventArgs e)
    }

注:本高级查询的配置信息存储在数据表中(Advance_Query):

高级查询--asp.net(C#)DROP TABLE Advance_Query;
高级查询--asp.net(C#)
CREATE TABLE Advance_Query
高级查询--asp.net(C#)(
高级查询--asp.net(C#)    Tbl            
VARCHAR2(30)    NOT NULL,    --表名称    PK
高级查询--asp.net(C#)
    Form            VARCHAR2(30)    NOT NULL,    --所属窗体名称    pk
高级查询--asp.net(C#)
    Field            VARCHAR2(30)    NOT NULL,    --字段名称    pk
高级查询--asp.net(C#)
    By_Name            VARCHAR2(30)    NOT NULL,    --字段别名
高级查询--asp.net(C#)
    Type            VARCHAR2(1)    NOT NULL,    --字段类型名称
高级查询--asp.net(C#)
    Flag            VARCHAR2(1)    NOT NULL,    --标示  0:利用下拉框 1:用文本框
高级查询--asp.net(C#)
    AreaSQL            VARCHAR2(150),        --当前值对应的查询语句 适合于:flag=0时使用
高级查询--asp.net(C#)
    CONSTRAINT PK_Text PRIMARY KEY(Tbl,Form,Field)
高级查询--asp.net(C#));

这样,运行的你的页面,就可以做到高级查询。

 

相关文章: