2012-04-04 7 views
8

में डेटा को फ़िल्टर करने के लिए कैसे मैं सूचीदृश्य पर टेक्स्टchange ईवेंट पर डेटा फ़िल्टर करना चाहता हूं, इसलिए मैं डेटा फ़िल्टर करने के लिए डेटाव्यू का उपयोग करता हूं। नीचे दिए गए कोड में समस्या यह है कि, मैं प्रत्येक के लिए डेटाव्यू का उपयोग करता हूं ताकि यह केवल एक शर्त की जांच कर सके जो केवल अंतिम मूल्य है, मैं s1 में डेटाव्यू के साथ मूल्य की जांच करना चाहता हूं और शेष मान सूचीदृश्य के साथ बाध्य होना चाहिए।डेटाव्यू

उदाहरण: यदि मैं टेक्स्टबॉक्स में टाइप करता हूं तो इसे सभी आइटम मानों को सूचीबद्ध करना चाहिए जैसे कि अंधा कुमार, अन्ना ect। मान लीजिए कि मैं सरणी एस 1 में मूल्य अनंध कुमार और अन्ना रखता हूं। मुझे अन्य सभी मूल्यों की सूची सूची सूची में एंटनी 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(); 

     } 
+0

आप परिणामों को श्रेणीबद्ध और अंतिम आउटपुट दिखाना चाहते हैं करना चाहते हैं? – Pankaj

उत्तर

5

उदाहरण के लिए:

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

कोड के ऊपर आज़माएं। – las

+0

इस लिंक और प्रारूप सूची दृश्य को अपने आप के अनुसार जांचें, http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.items.aspx – las

+0

यह ओवरराइटिंग भी प्राप्त करता है। मैं davaview में s1 मानों को छोड़ना चाहता हूं और कुछ तालिका –

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

रेफरी: http://www.csharp-examples.net/dataview-rowfilter/

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

+0

आज़माएं मैंने देखा। RowStateFilter = DataViewRowState.ModifiedCurrent; मैं खाली डेटाव्यू दिखाता हूं। मैं davaview –

+0

व्यू में s1 मान को छोड़ना चाहता हूं। RowFilter = "City! = 'Berlin'"; –

संबंधित मुद्दे