Ciao e buon Anno ....
La funzione CommandArgument dell'interfaccia IButtonControl restituisce oppure imposta un parametro opzionale passato all'evento Command del pulsante unitamente al CommandName associato ...
per cui non so dirti se nel postBackUrl questo sia rintracciabile ...
Io francamente utilizzo sempre dei campi testo visibili e/o nascosti per trasportare dati da una pagina all'altra nei seguenti modi:
codice del bottone:
<asp:button runat="server" id="btnPost" text="Click"
PostTargetUrl="~/Target.aspx" />
recupero i dati di un eventuale TextBox1 dalla pagina target in questo modo:
TextBox txt = (TextBox) PreviousPage.FindControl("TextBox1");
con questo metodo è possibile accedere a qualsiasi controllo di input definito sulla pagina che effettua il post ...
da notare che se i controlli si trovano all'interno di template si deve prima ottenere un riferimento al contenitore e poi ricercare il controllo all'interno di esso ...
L'altro metodo più "bello" è quello dell'utilizzo della direttiva @PreviusPageType che può accettare due attributi "VirtualPath" e "TypeName" il primo punta alla URL dellla pagina chimante il secondo indica il tipo di pagina chiamante ...
ad esempio:
<%@ PreviusPageType VirtualPath="paginacross.aspx" %>
rende la direttiva PreviousPage della classe della pagina target dello stesso tipo della pagina di cui è specficato il percorso .. (resta evidente che in questo caso bisogna sapere sempre a priori che la pagina target sarà sempre chiamata solo da quella previus) ...
questo fatto però non è sufficiente a permettere di accedere direttamente ai controlli di input della previus in quanto i controlli in essa contenuti sono dichiarati protected e non accessibili dall'esterno per cui devi realizzare delle proprietà pubbliche ad hoc nella pagina chiamante che espongano le informazioni di cui hai bisogno continuando con l'esempio della textbox avremo nella chiamante:
public TextBox TextBox1
{
get { return _textBox1; }
}
e dalla target lo richiami con:
Response.Write(PrevoiusPage.TextBox1.Text);
in ultima analisi se la pagia target è una pagina "duale" ossia che può anche essere richiamata da altre pagine senza l'utilizzo del postback o semplicemente da un link o altro ...
inserendo del codice "extra" se ne può gestire il comportamento utilizzando la proprietà PreviousPage che nel caso in cui la pagina sia invocata direttamente restituisce "null" ...
if (PreviousPage == null)
{
...
}
else
{
....
}
spero di aver chiarito ...
Ciao