Frage

Ich habe einen Abfragezeichenfolgenparameter „showall“ in der URL. Der Parameter wird dynamisch hinzugefügt, wenn auf die Schaltfläche „Alle anzeigen/Seiten anzeigen“ geklickt wird.

Ich möchte die Möglichkeit haben, den Parameterwert der Abfragezeichenfolge „Alle anzeigen“ umzuschalten, je nachdem, ob der Benutzer auf die Schaltfläche „Alle anzeigen/Seiten anzeigen“ klickt.

Ich mache ein paar verschachtelte „Wenns“ und string.Replace() Gibt es auf der URL einen besseren Weg?

Alle Manipulationen werden auf dem Server durchgeführt.

p.s. Toran, guter Vorschlag, allerdings muss ich aufgrund einiger anderer Probleme URL-PARAMETER VERWENDEN.

War es hilfreich?

Lösung

Um Torans Antwort näher zu erläutern:

Verwenden:
<asp:HiddenField ID="ShowAll" Value="False" runat="server" />

So wechseln Sie Ihren Status:

protected void ToggleState(object sender, EventArgs e)
{
    //parse string as boolean, invert, and convert back to string
    ShowAll.Value = (!Boolean.Parse(ShowAll.Value)).ToString();
}

Andere Tipps

Eine andere schmutzige Alternative könnte darin bestehen, einfach eine versteckte Eingabe zu verwenden und diese ein-/auszuschalten, anstatt die URL zu manipulieren.

Wäre es zu aufwändig, den Wert einfach mit einem Standardwert oder „true“ fest in die URL zu codieren (ich weiß, das ist nicht so schön), dann haben Sie es einfach getan

booleanVar = !booleanVar;

bei jedem Seitenaufruf ausführen?

Zumindest würde dies dazu führen, dass nicht mehr verschachtelte Ifs erforderlich sind, um die URL zu manipulieren.

Ich bin mir aufgrund der Frage nicht sicher, aber ist dies nicht der Fall? HTTPHandler Zur Rettung kommen?Sollten Sie in diesem Fall nicht die Variablenänderung am Objekt vor dem Rendern der Seite vornehmen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top