Veri sayfasındaki bir arama sonucunu vurgulamaya çalışıyorum. İlk olarak, DataTable satırları arasında dolaşıyorum ve bu kelimeleri vurgulamak için eşleşen bir anahtar kelime aramak üzere bir işlev çağırın, sonra da DataTable satırını vurgulanmış anahtar sözcüklerle yeni bir dizeyle güncelleyin.Hatası - Belirtiler System.Data.DataRow
DataLable dtResult öğesini DataList'e bağlarım. Ben anahtar kelimeyi vurgulamak için SearchDemo işlevine bu kod bloğunu eklendi dek işime yaramıştı: DataList içinde bulunan bir etiket bu "ayet" sütunu bağlı
For i = 0 To dtResult.Rows.Count - 1 Step 1
Dim strTemp As String = dtResult.Rows(i).ToString
strVerse = blHelper.Highlight(s, strTemp)
dtResult.Rows(i)("verse") = strVerse
Next
System.Data.DataRow gösterir. Gerisi doğru verileri gösterir.
şu kod bloğunu bakınız:
.........................
Public Shared Function SearchDemo(ByVal s As String) As DataTable
Dim dtResult As New DataTable
dtResult = SearchDetail(s)
Dim i As Integer = dtResult.Rows.Count
For i = 0 To dtResult.Rows.Count - 1 Step 1
Dim strTemp As String = dtResult.Rows(i).ToString
strVerse = blHelper.Highlight(s, strTemp)
dtResult.Rows(i)("verse") = strVerse
Next
Return dtResult
End Function
... .................................................. ...
Aşağıdaki bu iki işlev düzgün çalışıyor.
'Highlight the keywords in the returned result
Public Shared Function Highlight(ByVal Search_Str As String, ByVal InputTxt As String) As String
' Setup the regular expression and add the Or operator.
Dim RegExp As Regex = New Regex(Search_Str.Replace(" ", "|").Trim(), RegexOptions.IgnoreCase)
' Highlight keywords by calling the MatchEvaluator delegate each time a keyword is found.
Highlight = RegExp.Replace(InputTxt, New MatchEvaluator(AddressOf ReplaceKeyWords))
' Set the Regex to nothing.
RegExp = Nothing
End Function
Public Shared Function ReplaceKeyWords(ByVal m As Match) As String
Return "<b>" & m.Value & "</b>"
End Function
DataTable dtResul Her diğer satırlar Anahtar kelimeleri vurgulamak için çalıştı sütun "ayet" sıraları dışında düzgün gösterilmiştir. SearchDemo içinde bir döngü (anahtar kelimeleri vurgulamak için) kaldırırsam, iyi çalışır. Bu kodlara bakıp bana doğru yolu gösterebilir mi lütfen?
Teşekkür .. ah .. ne de böyle sth hata ayıklamak için söyle mümkün –
ilk eğer adım, hatanın kodunuzda olduğunu varsaymaktır. http://www.codinghorror.com/blog/archives/001079.html Buradan çalışarak, kodun 'üst kısmında' bir kesme noktası belirledim ve değişken değerleri izledim. StrTemp değerini oldukça hızlı bir şekilde görürdünüz. – Mufaka
Çok teşekkürler. İyi günler: D –