在XAML 中进行数据筛选
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:Visual Studio 2015
作者:李成富
撰写时间:2019年06月02日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
在XAML中对数据进行筛选有两种方法(本人已知):
第一种是:在数据库进行筛选,先在数据库写好筛选的SQL语句,再从页面获取到筛选对象,传到服务器,再传到数据库的SQL语句中,进行筛选。
第二种是:在控制器进行筛选,直接从页面获取到筛选对象,传到控制器进行筛选。
我要讲的是第二种:
先把数据绑定好在页面表格,如图所示:
给搜索文本框添加一个改变事件,如图:
视图代码:
控制器代码:
对控制器的方法进行编码:
第一步,先声明一个字符串对象,用来存放筛选语句:
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;
效果如图: