Procediamo con ordine :)
>La tua soluzione andrebbe benissimo ma ho un problema nella tua
>sub (uso C# cmq
) .... ed ho sbagliato, uso un datalist
>non un datagrid (non cambia molto però)
>
>Ho aggiunto il mio linkbutton
>
>per quale motivo devo definire un metodo di questo tipo
>
>Private Sub GridView1_RowCommand(ByVal sender As Object, ByVal
>e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles
>GridView1.RowCommand
>RowCommand? chi lo richiama questo metodo? non ho trovato nessun
>riferimento a questo metodo e non capisco come/quando viene richiamato
In realtà sia il Gridview, che il Repeater e la Datalist espongono di default un evento che intercetta qualsiasi comando che proviene da un loro item. Questo evento è "rowcommand" per la Gridview e "itemcommand" per la Datalist e il Repeater.
Se usi VSStudio 2005, puoi trovare questi metodi nell'editor del codice VB (o C#): nella tendina in alto a sinistra selezioni la tua datalist, e nella tendina in alto a destra trovi tutti i suoi metodi.
Nel caso della datalist, dunque, si può tranquillamente definire un metodo come
Protected Sub DataList1_ItemCommand(ByVal source As Object, ByVal e As
System.Web.UI.WebControls.DataListCommandEventArgs) Handles DataList1.ItemCommand
che come vedi non differisce molto da quello del Gridview, se non per il fatto che hai ItemCommand al posto di RowCommand.
Il comando intercettato, lo definisci proprio nel controllo server Linkbutton:
>
>Esempio pratico:
>
>Se il mio link html fosse stato qualche cosa del tipo:
>link.aspx?ID1=Elemento1PresoDalDB&ID2=Elemento2PresoDalDB
>cosa avrei dovuto mettere nel CommandArgument??
>CommandArgument='<%# DataBinder.Eval(Container.DataItem,"Elemento1PresoDalDB")
>%>'
>corretto? ma in questo modo ho associato un solo parametro e
>l'altro?
>
>come gestisco il metodo che mi hai allegato? intendo: come lo
>richiamo (mio problema iniziale) e come gestire le 2 var sessione,
>corrispondenti ai 2 campi del DB che mi servono?
>
L'attributo CommandArgument, come vedi ha come valore una stringa formattata come "Elemento1PresoDalDB@Elemento2PresoDalDB",
utilizzando il costrutto String.Format di VB (ma credo che in C# sia simile).
Puoi concatenare tutti i valori che vuoi in questo modo.
A questo punto, dentro il metodo ItemCommand del Datalist, splitti la stringa e assegni i tuoi valori a due variabili di
sessione:
Tieni presente che le variabili di sessione le puoi utilizzare proprio quando ti servono, ma usale con cautela, perchè fino a
che dura la sessione, queste esistono, mantenendo i valori che l'utente gli ha assegnato l'utente.
>Grazie infinite per l'aiuto
>
Ti ho fatto l'esempio in VB.NET, ma credo che con poco sforzo, riuscirai tranquillamente a convertirlo in C#...
Spero che ora avrai le idee un po' + chiare...magari cercati qualche tutorial sulle variabili di sessione, che potrà aiutarti
a capire meglio.
Spero di essere stato utile.
Buon lavoro 
"All I want is a Dataset..."