在XAML 中进行数据筛选

XAML 中进行数据筛选

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开发工具与关键技术:Visual Studio 2015

作者:李成富

撰写时间:2019年06月02日

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

在XAML中对数据进行筛选有两种方法(本人已知):

第一种是:在数据库进行筛选,先在数据库写好筛选的SQL语句,再从页面获取到筛选对象,传到服务器,再传到数据库的SQL语句中,进行筛选。

第二种是:在控制器进行筛选,直接从页面获取到筛选对象,传到控制器进行筛选。

我要讲的是第二种:

先把数据绑定好在页面表格,如图所示:

在XAML 中进行数据筛选

给搜索文本框添加一个改变事件,如图:

视图代码:

在XAML 中进行数据筛选

控制器代码:

在XAML 中进行数据筛选

对控制器的方法进行编码:

第一步,先声明一个字符串对象,用来存放筛选语句:

string tiaojian = "";

第二步,获取文本框的筛选对象:

string fe = txt_Select.Text.Trim();

第三步,对筛选对象进行空值判断,若不为空,则给tiaojian添加筛选语句:

if (fe != "")

{

tiaojian = "name like '%'+'" + fe + "'+'%'" +

"or accounts like '%'+'" + fe + "'+'%'" +

"or password like '%'+'" + fe + "'+'%'" +

"or note like '%'+'" + fe + "'+'%'";

}

第四步,声明配置好的服务器:

BLL.Sqlchuenchu.YuangongzhglClient mybll = new BLL.Sqlchuenchu.YuangongzhglClient();

第五步,执行服务器获取数据的方法:

DataTable fec = mybll.Yuangongzh().Tables[0];

第六步,创建自定义视图,并把数据放入其中:

DataView shitu = new DataView(fec);

第七步,初始化一个数据表:

DataTable zhonshu = new DataTable();

第八步,判断筛选语句不为空,并且从数据库获取到数据,如果为真。则把筛选语句传到视图,并把视图传给内存表格:

if (tiaojian != "" && fec.Rows.Count > 0)

{

shitu.RowFilter = tiaojian;

zhonshu = shitu.ToTable();

}

第九步,当第八步没通过时,则判断筛选语句是否为空,如果为真,则直接把视图传给内存表格:

if (tiaojian == "")

{

zhonshu = shitu.ToTable();

}

第十步,把内存表格绑定到页面表格。

dgAccountManage.ItemsSource = zhonshu.DefaultView;

效果如图:

在XAML 中进行数据筛选