Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887

    Evidenziare il testo cercato dopo una ricerca

    Sto implementando un sistema di ricerca (per ora ci sono 4 campi possibili) in un sistema di annunci, e vorrei abilitare l'highlight del testo cercato, all'interno nei risultati, proprio come fa questo forum.

    Condiderando che la pagina contiene uno usercontrol che mostra i risultati, esiste un evento
    (dello UC o della pagina) che mi permetta di confrontare il testo cercato con quello che la pagina sta per presentare al client, in modo da colorarlo in qualche maniera ?

    L'unica idea che mi è venuta in mente è quella di controllare il flusso Response.OutputStream(), ma non so dove

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    559
    ciao!
    secondo me potresti agire sull' evento RowDataBound della griglia dei risultati:

    modifichi il Text dell' elemento che contiene il campo da colorare, quindi
    sostisci la parola che corrisponde con <font color="red">parola che corrisponde</red>

    se nella vita avro avuto la possiblita di aiutare qualcuno non avro vissuto invano (E. Dikinson)

  3. #3
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Grazie, per la griglia vera e propria è una idea.

    Comunque la situazione è un po' piu' complessa di quello che credevo se voglio controllare l'intera pagina, mi sa che una volta intercettato il 'dove', dovrò ricorrere alle regExp... :master:





    Per ora sull'item del repeater, nell'evento di Bound, ho agito così:

    codice:
    Dim hltesto As New HyperLink
    hltesto.NavigateUrl = "pagina.aspx"
    
    If Microsoft.VisualBasic.InStr(e.Item.DataItem("testo").ToString, strTestoCercato) > 0 Then
       hltesto.Text = Replace(e.Item.DataItem("testo").ToString, strTestoCercato, "<span class=testoEvidenziato>" & strTestoCercato & "</span>")
    Else
       hltesto.Text = e.Item.DataItem("testo").ToString
    End If
    dove "hltesto" viene poi aggiunto ad un PlaceHolder. E funziona. Il problema rimane se volessi estenderlo a tutto il rendering della pagina...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.