[英]How to filter data in dataview
我想在 listview 的 textchange 事件上过滤数据,所以我使用 dataview 来过滤数据。 下面代码中的问题是,我在每个内部使用数据视图,以便它只检查一个条件,它只需要最后一个值,我想用数据视图检查s1中的值,剩余的值应该与列表视图绑定。
例如:如果我在文本框中键入一个文本框,它应该列出所有以 anandha kumar、anna 等值开头的项目值。 假设我将值 anandha kumar 和 anna 保存在数组 s1 中。 我应该在列表视图中列出所有其他值,期望像 antony ect... 这样的数组值。
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
dvProducts = (DataView)Session["ListViewItems"];
string serachText = EscapeLikeValue(TextBox1.Text);
string lvValues = hdRetailCustomerGroup.Value;
string trim = lvValues.Replace(" ", "");
trim = trim.Replace("\r", "");
trim = trim.Replace("\n", "");
trim = trim.Replace("\t", "");
string str = trim;
string[] list = str.Split('|');
foreach (string s1 in list)
{
if (s1 != string.Empty)
{
dvProducts.RowFilter = "(CODE like '" + serachText + "*') AND (CODE <> '" + s1 + "')";
Session["ListViewItems"] = dvProducts;
}
}
ListView1.DataSource = dvProducts;
ListView1.DataBind();
}
DataView view = new DataView();
view.Table = DataSet1.Tables["Suppliers"];
view.RowFilter = "City = 'Berlin'";
view.RowStateFilter = DataViewRowState.ModifiedCurrent;
view.Sort = "CompanyName DESC";
// Simple-bind to a TextBox control
Text1.DataBindings.Add("Text", view, "CompanyName");
参考: http://www.csharp-examples.net/dataview-rowfilter/
http://msdn.microsoft.com/en-us/library/system.data.dataview.rowfilter.aspx
例如:
Datatable newTable = new DataTable();
foreach(string s1 in list)
{
if (s1 != string.Empty) {
dvProducts.RowFilter = "(CODE like '" + serachText + "*') AND (CODE <> '" + s1 + "')";
foreach(DataRow dr in dvProducts.ToTable().Rows)
{
newTable.ImportRow(dr);
}
}
}
ListView1.DataSource = newTable;
ListView1.DataBind();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.