如何根据多个输入过滤DataView [英] How to filter DataView based on multiple inputs
问题描述
我知道如何根据用户在单个文本框中的输入来过滤数据:
I know how to filter data based on the user's input from a single textbox:
FilterDataView.RowFilter = txtFilter.Text;
FilterDataView.RowFilter = txtFilter.Text;
但是您将如何根据来自多个字段的多个用户输入来过滤数据.基本上过滤器将充当搜索"功能.
But how would you go about filtering data based on multiple user input from multiple fields. Basically filter would act as a "search" functionality.
推荐答案
你可以在定义 RowFilter 时使用类似 light t-sql 的东西.
You can use something like light t-sql when defining RowFilter.
一个想法是:
FilterDataView.RowFilter = "name like '%habjan%' and city like '%new york%'"
在这里你可以找到一篇关于 RowFilter 语法的好文章:DataView行过滤器语法
Here you can find a good article about RowFilter syntax: DataView RowFilter Syntax
对于您需要的内容,您必须根据输入的字段构建行过滤器.
For what you need you will have to build row filter based on entered fields.
StringBuilder sb = new StringBuilder();
if (tb1.Text.Length > 0)
{
sb.Append("name like '%" + tb1.Text + "%'");
}
if (tb2.Text.Length > 0)
{
if(sb.Length > 0)
{
sb.Append(" and ");
}
sb.Append("city like '%" + tb2.Text + "%'");
}
//.... and so on...
FilterDataView.RowFilter = sb.ToString();
这篇关于如何根据多个输入过滤DataView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!