27 messaggi dal 13 maggio 2006
Salve a tutti,
continuo ad avere problemi nell'eseguire query con filtri attraverso l'utilizzo dei SelectedMethod associati alle GridView.
Secondo la guida, l'attributo "Control" richiede la specifica dell'ID del controllo e della proprietà da utilizzare per recuperare il valore del filtro:

 
public IQueryable<ClienteModel> rgClienti_GetData(
  [System.Web.ModelBinding.Control("txtRicerca", "Text")] string testoRicerca)
{
...


Al momento dell'esecuzione del metodo "rgClienti_GetData", la variabile "testoRicerca" è null mentre il valore della proprietà Text del controllo "txtRicerca" è valorizzato.

Dopo diversi tentativi, sono riuscito a capire il motivo di questo malfunzionamento: la GridView risiede all'interno di un ContentPlaceHolder diverso rispetto a quello in cui risiede la TextBox (la conferma l'ho avuta quando ho provato a spostare la TextBox all'interno dello stesso ContentPlaceHolder della GridView ed il tutto funziona).

L'applicazione è stata progettata considerando l'utilizzo dei filtri (fra cui anche la TextBox di cui sopra) all'interno di un ContentPlaceHolder diverso, pertanto vi chiedo una mano per capire in che modo posso risolvere!

Vi ringrazio anticipatamente!
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
nonostante si trovi in un ContentPlaceholder diverso, la casella di ricerca si trova comunque nella stessa pagina pagina .aspx della GridView? Non è che magari si trova invece in una MasterPage? Descrivi bene la struttura del tuo sito, eventualmente postando il codice dei due ContentPlaceholder.

icaro1984 ha scritto:

Dopo diversi tentativi, sono riuscito a capire il motivo di questo malfunzionamento: la GridView risiede all'interno di un ContentPlaceHolder diverso rispetto a quello in cui risiede la TextBox

Non ne sono sicuro perché non conosco la struttura della tua pagina ma... non penso sia questo il problema. Fintanto che il testo della casella di ricerca è accessibile scrivendo txtRicerca.Text, è indifferente in quale ContentPlaceholder si trovi.
Forse la casella di ricerca, mentre era nel suo ContentPlaceholder originale, si trovava annidata all'interno di un altro controllo, tipo un ListView, e perciò inaccessibile dall'attributo [Control]

Per ora, nel corpo della funzione rgClienti_GetData, prova a recuperare il valore semplicemente così. Funziona? Hai errori?
testoRicerca = txtRicerca.Text;


ciao,
Moreno

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.