Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887

    Ricostruzione dell'url...

    se ho un hyperlink con destinazione :

    codice:
    /documenti.aspx?action=menuoff
    prima di andare alla destinazione indicata, posso aggiungere in qualche modo la querystring corrente ?

    Cioe' se in un determinato momento ho :

    codice:
    /documenti.aspx?idmodello=1&descrizione=richiestapreventivo
    posso fare in modo che la destinazione finale sia
    codice:
    /documenti.aspx?idmodello=1&descrizione=richiestapreventivo&action=menuoff
    ??

  2. #2
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    puoi intercetare il link e aggiungere in coda quello che ti interessa.

  3. #3
    Avevo fatto una funzioncina apposta in C# tempo fa. In pratica dovrebbe prendere tutte le vecchie qs, ed aggiungere le nuove passate tramite i due array (uno per i nomi, l'altro per i valori) controllando che non siano già presenti. Prendila con le molle visto che è un po' che l'ho fatta e che non so se è l'ultima versione (che ho di sicuro in ufficio), ma ti può cmq essere di ispirazione.

    Sndk

    codice:
    string[] arrQSP = new string[1] {"qsSndkPage"};
    string[] arrQSPValue = new string[1] {i.ToString()};
    
    string paginaPassaggio = Request.ServerVariables["URL"] + getQS(arrQSP, arrQSPValue);
    
    
    /// <summary>
    /// Prende le vecchie QueryString e le passa.
    /// </summary>
    private string getQS(string[] qsToSet, string[] qsToSetValue)
    {
    	int lunSet = qsToSet.Length;
    	int lunSetVallue = qsToSetValue.Length;
    	string vecchieQs = Request.ServerVariables["QUERY_STRING"].Trim();
    
    	int posizione;
    
    	if( vecchieQs.Length == 0 ) 
    	{ 
    		for(int i=0; i<lunSet; i++)
    		{
    			if(i==0) {vecchieQs = "?" + qsToSet[i] + "=" + qsToSetValue[i];}
    			else {vecchieQs += "&" + qsToSet[i] + "=" + qsToSetValue[i];}
    		}
    			
    	}
    	else 
    	{ 
    		//Ci sono già delle qs
    		posizione = vecchieQs.IndexOf(qsToSet[0] + "=");
    		if( posizione == -1)
    		{
    			//Prima volta
    			for(int i=0; i<lunSet; i++)
    			{
    				if(i==0) {vecchieQs = "?" + vecchieQs + "&" + qsToSet[i] + "=" + qsToSetValue[i];}
    				else {vecchieQs += "&" + qsToSet[i] + "=" + qsToSetValue[i];}
    			}
    		}
    		else
    		{
    			//ennesima volta. Deve sostituire il n. di pagina.
    			if( posizione <= 1 ) 
    			{ 
    				for(int i=0; i<lunSet; i++)
    				{
    					if(i==0) {vecchieQs = "?" + qsToSet[i] + "=" + qsToSetValue[i];}
    					else {vecchieQs += "&" + qsToSet[i] + "=" + qsToSetValue[i];}
    				}
    			}
    			else 
    			{ 
    				for(int i=0; i<lunSet; i++)
    				{
    					if(i==0) {vecchieQs = "?" + vecchieQs.Substring(0,posizione) + qsToSet[i] + "=" + qsToSetValue[i];}
    					else {vecchieQs += "&" + qsToSet[i] + "=" + qsToSetValue[i];}
    				}
    			}
    				
    		}
    	}
    
    	return vecchieQs;
    }
    "La vendetta è un piatto che va gustato freddo"
    Antico proverbio Klingon.
    Lo chiamavano il 'Computer Umano'. Sapeva contare fino a 20 e nudo fino a 21!

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    grazie 1000 ora me la studiacchio...

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 © 2026 vBulletin Solutions, Inc. All rights reserved.