如何过滤数据视图中的数据

Posted

技术标签:

【中文标题】如何过滤数据视图中的数据【英文标题】:How to filter data in dataview 【发布时间】:2012-04-18 01:49:10 【问题描述】:

我想过滤 listview 上 textchange 事件的数据,所以我使用 dataview 过滤数据。下面代码中的问题是,我在每个内部都使用 dataview,以便它只检查一个条件,即只有它需要的最后一个值,我想用 dataview 检查 s1 中的值,剩余的值应该与列表视图。

例如:如果我在文本框中键入 an,它应该列出所有以 anandha kumar,anna 等值开头的项目值。假设我将值 anandha kumar 和 anna 保留在数组 s1 中。我应该在列表视图中列出所有其他值,除了数组值,如安东尼等。

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();

        

【问题讨论】:

你想连接结果并显示最终输出吗? 【参考方案1】:
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

【讨论】:

我给了 view.RowStateFilter = DataViewRowState.ModifiedCurrent;我显示空数据视图。我想省略 dataview 中的 s1 值 view.RowFilter = "City != 'Berlin'";【参考方案2】:

例如:

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();

【讨论】:

勾选这个链接,根据自己的格式列表视图,msdn.microsoft.com/en-us/library/… 它也会被覆盖。我想省略 dataview 中的 s1 值并存储在某个表中 然后新建数据表并添加行, 我修改了上面的代码,试试看

以上是关于如何过滤数据视图中的数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在 XPage 上配置 xe:viewFileItemService 以过滤分类视图中的数据?

如何筛选到数据视图中的联接项列?

bigQuery 和 GA-Premium 集成:从 GA 中的未过滤视图导出数据时,如何在 bigQuery 中使用 IP 过滤器(以排除内部流量)

如何在android中的简单列表视图上使用startsWith应用搜索过滤器

如何从 Django 中的过滤器访问数据

SAPUI5 列表绑定与 XML 视图中的过滤数据