Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [asp.net 2.0 VB]DataKeyNames multipli e FilterExpression

    Ciao, ho una gridView con più valori dichiarati come DataKeyNames

    Ad esempio:
    DataKeyNames ="Categoria, Produttore, Provenienza"

    Vorrei usare tutte e tre le chiavi per filtrare una sqlDataSource ma non riesco a recuperarne i valori della seconda e della terza.

    Se imposto la PropertyName di un ControlParameter che ha come ControlID la mia GridView su SelectedValue ottengo, come ho detto, solo il valore della prima chiave.

    Come ottenerle tutte senza tirare in ballo campi hidden?
    Se esiste la proprietà SelectedValue per i ControlID mi sembra assurdo che sia limitata alla prima chiave

  2. #2
    Fai così, a me funziona

    codice:
    <SelectParameters>
            <asp:ControlParameter ControlID="GridView" Name="Categoria" PropertyName="SelectedDataKey.Values[0]" Type="String" />
            <asp:ControlParameter ControlID="GridView" Name="Produttore" PropertyName="SelectedDataKey.Values[1]" Type="String" />
            <asp:ControlParameter ControlID="GridView" Name="Provenienza" PropertyName="SelectedDataKey.Values[2]" Type="String" />
    </SelectParameters>

  3. #3
    Mitico Max! Sembrerebbe andare con quella sintassi.

    Uso il condizionale perchè ho difficoltà a passare i parametri alla FilterExpression, sono alle prime armi.

    FilterExpression="Categoria='{0}' And Produttore='{1}" ....

    Mi restituisce l'errore:
    L'indice (in base zero) deve essere maggiore o uguale a zero e minore della dimensione dell'elenco degli argomenti

    Come costruisco una FilterExpression in caso di chiavi multiple?
    Grazie ancora e scusa le domande da neofita, googlelando non ho trovato nulla.

  4. #4
    Dipende da che db stai utilizzando, access o sql server?

  5. #5
    Cmq ora scappo e siccome sono in ferie non so se ci sarò!
    Se usi access allora al posto dei tuoi valori nella stringa metti il simbolo ?
    ad esempio [categoria] = ? and [produttore] = ?

    e credo tu debba rispettare l'ordine, credo perche non l'ho mai fatto su access

    se invece usi sql server allora usa il carattere @ seguito dal nome campo cioè

    categoria = @categoria and produttore = @produttore ....

    buone vacanze a tutti

  6. #6
    a proposito scusa, i parametri li utlizzi dentro la SelectCommand= "....."
    del sqldatasource

  7. #7
    purtroppo devo scappare anche io, stasera provo e ti faccio sapere.
    per il momento grazie 1000 della disponibilità.

  8. #8
    Non ce l'ho fatta ad aspettare, ho provato subito.

    Ora funziona perfettamente e la seconda gridView seleziona perfettamente i record in base alle dataKeys della prima e quindi posso andare avanti nelo sviluppo di questa mia prima applicazione dotNet ...GRAZIE!!!!!!!!!!

    Pochi perdono tempo a rispondere a domande così semplici e i libri che ho comprato non contenevano informazioni a riguardo, mi hai salvato dalle solite 8 ore di esperimenti frustranti.

    Mi resta solo il dubbio del perchè non possa usare una FilterExpression e, soprattutto, di che differenza ci sia fra l'uso delle FilterExpression e gli statement del comando Select ...ma per ora basta, ogni giorno ha il proprio affanno

    Birra e donne per te! Ciao

  9. #9
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    che per i comandi sql lavora il motore sql invece del pc locale.

  10. #10
    Originariamente inviato da cassano
    che per i comandi sql lavora il motore sql invece del pc locale.
    Illuminante, davvero.
    Mi sembra che, nel mio caso, sia più utile fare tutto lato server perchè devo fare operazioni su più tabelle ma correggetemi se mi sbaglio, prima che imposti tutto nella maniera sbagliata.

    C'è differenza in termini di prestazioni o, diciamo, di 'professionalità'? ...in che casi andrebbe usata una filterExpression al posto di una 'select col where'?

    Grazie dei chiarimenti, ciao.

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.