J'ai essayé de mettre en évidence un résultat de recherche dans DataTable. Tout d'abord, je parcourt les lignes de DataTable et appelle une fonction pour rechercher un mot clé correspondant afin de mettre en évidence ces mots, puis je mets à jour la ligne DataTable avec une nouvelle chaîne avec des mots-clés en surbrillance.Erreur - Lable affiche System.Data.DataRow
Je lie le DataTable dtResult à la DataList. Il a bien fonctionné jusqu'à ce que j'ajouté ce bloc de code à la fonction SearchDemo pour mettre en évidence le mot-clé:
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
Une étiquette à l'intérieur du DataList lié cette colonne « verset » montre System.Data.DataRow. Le reste montre les données correctes.
S'il vous plaît voir le bloc de code suivant:
.........................
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
... .................................................. ....
Ces deux fonctions ci-dessous fonctionnent correctement.
'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
Toutes les autres lignes de la DataTable dtResul sont présentés correctement à l'exception des lignes de la colonne « vers » que j'ai essayé de mettre en évidence les mots-clés. Si je supprime une boucle (pour mettre en évidence des mots-clés) à l'intérieur du SearchDemo, cela fonctionnera correctement. Quelqu'un peut-il jeter un oeil à ces codes et me diriger vers la bonne direction s'il vous plaît?
Merci .. ah .. mes yeux .. serait bien me dire comment déboguer STH comme cela aussi, si possible –
La première l'étape consiste à supposer que l'erreur est dans votre code. http://www.codinghorror.com/blog/archives/001079.html En travaillant à partir de là, j'ai défini un point d'arrêt au sommet du code et j'ai regardé les valeurs des variables au fur et à mesure que je passais. Vous auriez vu la valeur de strTemp assez rapidement. – Mufaka
Merci beaucoup. Bonne journée: D –