2009-05-31 18 views
4

Ich habe eine einfache Aufgabe - Seite Link auf Checkbox Statusänderung zu ändern - aber ich bin neu in ASP.NET und habe einige Probleme.ASP.NET CheckBox Zustand und PostBack

Ich kann das gleiche tun Html und JavaScript verwenden:

<script type="text/javascript" language="javascript"> 
    function checkbox_onChanged(checked) { 
    if (checked) { 
     document.location = '?type=request_in&show=all'; 
    } 
    else { 
     document.location = '?type=request_in&show=unapproved'; 
    } 
    } 

    function checkbox_onLoad(checkbox) { 
    checkbox.checked = true; 
    } 
</script> 

<form action="" method="get"> 
<input type="checkbox" name="checkbox" 
    onload="checkbox_onLoad(this)" 
    onchange="checkbox_onChanged(this.checked)" />Show all 
</form> 

aber ich will es von den Benutzern verbergen. Also ich tue:

Aber es scheint, dass überprüfen Zustand ändern bei Belastung löst das Ereignis erneut und Kontrollkästchen wird immer überprüft!

Noch eine Frage - gibt es eine andere Möglichkeit, auf die gleiche Seite umzuleiten, ohne den Dateinamen zu geben? Ich meine wie in JavaScript - nur geben Variablen benötigt?

Antwort

2

Sie können Ihre Client-Seite ‚checkbox_onChanged‘ aus dem ASP.NET Checkbox nennen, fügen Sie einfach die ‚onchange‘ aus dem Page_Load, zB:

protected void Page_Load(object sender, EventArgs e) 
{ 
    check.Attributes["onchange"] = "checkbox_onChanged(this.checked)"; 
} 

Quelltext anzeigen und Sie werden sehen, was geschieht in der HTML ..

+0

Danke für die Antwort! Aber ich möchte das nicht auf der Client-Seite tun. Könnten Sie mir bitte Tipp geben, wie ich die Aufgabe nur auf Serverseite mache? Mein Software-Paradigma erfordert eine minimale Anzahl von clientseitigen Aktionen. – abatishchev

+0

Warum senden Sie die Informationen in der Abfragezeichenfolge? Sie können einfach auf die check.Checked-Eigenschaft zugreifen. Beachten Sie, dass ASP.NET viewstate den Status Ihrer Checkbox zwischen Postbacks behält, ohne dass Sie Request ["show"] testen müssen. – russau

+0

Vielen Dank !! – abatishchev

Verwandte Themen