2016-03-20 13 views
0

Datagridview'de arama yapmaya çalışıyorum. textchange olayı için bu kodu kullanıyorum.Bir DataGridView'da arama

Dt.Defaultview.RowFilter =string.Format("ID like '%" + SearchTextBox.Text +"%') 
Ben de (onlar her birkaç satır için colum 4 toplamını yapmak) DataGridView bir kaç yazlık satırlarda yer

ben arama seçeneğini kullanarak olduğumda Hedefim yazlık satırları tutmaktır

. (şimdi yazlık satırlar im arama seçeneğini kullanırken görünmez, çünkü

Ben hücrede 4 tarafından bir yazlık satır tanıyabilir; sahip oldukları '*' değeri olarak

+1

İlk olarak, ızgara görünümünüz için veri kaynağı olarak 'DataTable' kullanıyorsunuz. "Özet" satırlarınız bu veri tablosunda yer alıyor mu? –

+0

Bunu kullanıyorum: dt.InsertAt (dr, i); – ShmuelCohen

cevap

2

size "özeti" satırları yer edindikten sonra. veri tablonuzu kullanarak filtreye dahil edilmelerini zorlayabilirsiniz. Böyle OR durum: desteklenen DataView.RowFilter sözdizimi here anlatılan

string summaryFilter = ...; 
Dt.Defaultview.RowFilter = summaryFilter + 
    " OR ID like '%" + SearchTextBox.Text +"%'"; 

.

+0

Bu hatayı alma. System.String Ve System.int'te '=' işlemi önceden yapılamıyor. Yazlık coulm int değeri vardır. Ve ID coulm bir dize değerine sahiptir. – ShmuelCohen

+0

Görünüşe göre, "summaryFilter" durumunda bir sorun var. Burada 'int' sütununu kullanıyorsanız, onu "*" ile karşılaştıramazsınız. Özet satırını doldururken, o sütuna ne koyarsınız? Ve bunu nasıl hesaplıyorsunuz - ızgara olaylarında? –

+0

Tamam, daha iyi açıklamama izin verin. Sayı verisi olan sütun kimliğim var. Ve aynı zamanda sütun dizilim yapıyorum: Dizeleri olan IdStatus. ID'nin ilk numarası değiştiğinde (1'den 2'ye veya 2'den 3'e kadar) IdStatus sütununda yazlık bir satır yapıyorum. Ve diğerlerinin hepsi bu sıradaki hücreler boş. Şimdi, bu sunmery satırını arama seçeneğini kullandıktan sonra tutmak istiyorum. – ShmuelCohen