2012-04-04 19 views
8

Quiero filtrar datos en el evento textchange en listview así que uso dataview para filtrar datos. El problema en el siguiente código es que utilizo dataview para cada uno de modo que compruebe solo una condición que sea el último valor que solo tome, quiero verificar el valor en s1 con dataview y el valor restante debe vincularse con listview.Cómo filtrar datos en dataview

por ejemplo: si escribo un en el cuadro de texto, debe listar todos los valores de los elementos comenzando con un valor como anandha kumar, anna ect. supongamos que conservo el valor anandha kumar y anna en la matriz s1. Debo enumerar todos los demás valores. Espero que los valores de la matriz como antony ect ... en listview.

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

     } 
+0

¿Quieres concatenar los resultados y quiere mostrar el resultado final? – Pankaj

Respuesta

5

Ej:

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

Pruebe el código anterior. – las

+0

Compruebe este enlace y formatee la vista de lista de acuerdo con el suyo, http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.items.aspx – las

+0

y también sobrescriba. Quiero omitir los valores s1 en dataview y almacenarlos en alguna tabla –

13
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"); 

Ref: http://www.csharp-examples.net/dataview-rowfilter/

http://msdn.microsoft.com/en-us/library/system.data.dataview.rowfilter.aspx

+0

di view.RowStateFilter = DataViewRowState.ModifiedCurrent; Muestra la vista de datos vacía Quiero omitir el valor s1 en dataview –

+0

view.RowFilter = "City! = 'Berlin'"; –

Cuestiones relacionadas