Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881

    [VB.Net] Brutto problema con autocomplete extender

    Ho un AjaxToolkit autocompleteextender su un textbox in un webform: è applicato ad un campo di ricerca per nome all'interno di una rubrica... funziona bene tranne quando vado a selezionare tra i risultati che mostra sotto al campo dove sto digitando, una stringa che contiene un apostrofo! Crash della pagina!
    Ho capito perchè lo fa (l'apostrofo spezza le stringhe nel JS che c'è sotto) ma non so dove mettere le mani anche perchè tutto il JS dell'autocomplete se lo crea e se lo gestisce aspnet...
    Avrei bisogno di un AjaxToolkit ninja... ce n'è da queste parti?
    Grazie
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  2. #2

  3. #3
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    non capisco un klinz
    Il mio autocomplete funziona senza problemi, mi mostra i risultati anche se cerco parole con l'apostrofo o con slash etc (dagli esempi che trovo in rete e anche nel link suggerito sembra che invece il problema sia che in quei casi non tiri fuori nessun risultato)... il problema io ce l'ho quando, nel div che compare con i risultati, seleziono uno dei risultati che ha l'apostrofo, lì mi va in crash.
    La selezione di uno dei risultati proposti mi fa da filtro ad un gridview che ho sotto al box di ricerca con l'elenco dei nominativi in rubrica.
    Ho provato anche a inserirmi sul textchanged del campo di ricerca per modificare il filterparameter del datasource applicato al gridview ma sembra senza effetti apprezzabili... la cosa avviene a livello di JS, credo, ma io non vedo nessun codice dove mettere le mani... io posso mettere mano alla query che viene eseguita per produrre i risultati ma sul resto (ovvero il JS eseguito alla selezione dei risultati proposti) non ho modo di inserirmi...
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  4. #4
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    Inserito breakpoint nel filtering del datasource:
    al momento di filtrare vedo che la stringa di filtro è valorizzata con quello che ho cliccato sul div propostomi dall'autocompleteextender, ovvero "SOCIETA' COOPERATIVA PINCOPALLINO".
    Ho provato a modificare SqlList.FilterParameters.Item("nomecliente").Defau ltValue= Replace(filtro, "'","''")
    dove filtro è proprio la stringa di cui sopra, raddoppiando l'apice ma all'istruzione successiva si inchioda e mi dice Syntax error: Missing operand after 'COOPERATIVA' operator.

    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  5. #5
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    cioe' il risultato (la 'cascata' sotto la textbox di ricerca) è un DIV ?

    credo che come nel caso linkato, il problema stia da un'altra parte, perche' se vedi i risultati vuol dire che lo script prodotto dal toolkit funziona.

    alla fine hai un web service con un metodo, giusto ?

    ps1:
    prova a mettere " societa' "qui, non da' nessun problema:
    http://www.ajaxtoolkit.net/AutoCompl...oComplete.aspx

    ps2: come aggiorni la griglia, una volta selezionato un valore ? il DataSource ha un filtro di tipo ControlParameter ?
    Ultima modifica di djciko; 29-09-2015 a 16:29

  6. #6
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    tu si che mi capisci :-)
    L'autocomplete funziona effettivamente, crasha dopo, quando crea o applica il filtro che è effettivamente un filtro di tipo controlparameter.
    Sono arrivato a intercettare la cosa sul filtering, dove distruggo il filtro e lo ricreo, solo che non so come sostituire quell'apice maledetto:
    Protected Sub SqlList_Filtering(sender As Object, e As SqlDataSourceFilteringEventArgs)
    If e.ParameterValues(0) <> Nothing Then
    Dim filtromac As String
    filtromac = e.ParameterValues(0).ToString
    SqlList.FilterParameters.Clear()
    SqlList.FilterParameters.Add("an_descr1", Replace(filtromac, "'", "Chr(39)")) ???
    SqlList.FilterParameters.Add("an_descr1", Replace(filtromac, "'", "''")) ???
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  7. #7
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    la filterexpression del datasource è qualcosa così
    Isnull(an_descr1,'') + ' ' + Isnull(an_descr2,'') LIKE '%{0}%'
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  8. #8
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    If e.ParameterValues(0) <> Nothing Then
    Dim filtromac As String
    filtromac = e.ParameterValues(0).ToString

    filtromac = filtromac.Replace("'", "''") 'sostituisce l'apice con il doppio apice per la query

    SqlList.FilterParameters.Clear()
    SqlList.FilterParameters.Add("an_descr1", filtromac)
    Ultima modifica di djciko; 30-09-2015 a 12:02

  9. #9
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    stesso errore
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  10. #10
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    provato anche a forzare un escape character aggiungendo ESCAPE '_' nella filterexpression e poi facendo il replace dell'apostrofo nel filterparameter
    filtromac = filtromac.Replace("'", "_'")
    (nei miei disperati tentativi dovrebbe fare l'escape del carattere ' dentro all'istruzione like di SQL)
    inutilmente

    è pazzesco, non esco da 'sto tunnel
    Ultima modifica di supermac; 01-10-2015 a 10:10
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

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.