2011-09-20 3 views
0

Je fais face à une action si étrange dans ma page.page comportement étrange

J'ai une liste de boutons radio, selon la sélection, j'exécute un code spécifique.

Le problème est:

par exemple lorsque je sélectionne l'option 2 puis je sélectionne l'option de retour 1.

la page maintient l'état (toutes les listes déroulantes maintiennent leurs sélections précédentes) et je dois cliquer sur le lien une fois de plus pour forcer la page à entrer dans cette condition:

if (!Page.IsPostBack) 
{ 
    BindCamp(0); 
    BindCamp(1); 
} 

mon ASPX:

<asp:RadioButtonList ID="rbl" runat="server" 
    OnSelectedIndexChanged="rbl_SelectedIndexChanged" 
    RepeatDirection="Horizontal" Width="200px" AutoPostBack="True"> 
    <asp:ListItem Value="0" Selected="True">view data</asp:ListItem> 
    <asp:ListItem Value="1">view report</asp:ListItem> 
</asp:RadioButtonList> 

Mon code:

protected void rbl_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (rbl.SelectedItem.Value == "0") 
    { 
     pnl_view.Visible = true; 
     pnl_stat.Visible = false; 
     pnl_rep.Visible = false; 
    } 
    else 
    { 
     pnl_view.Visible = false; 
     pnl_all.Visible = false; 
     pnl_Dean.Visible = false; 
     pnl_research.Visible = false; 
     pnl_stat.Visible = true; 
    } 
} 
+0

Pourriez-vous élaborer sur le problème ... Je ne suis pas tout à fait sûr de ce que le problème est de cette description ... –

+0

Le problème est: J'ai une liste de radiobutton (deux options) quand je choisis la deuxième option, il me montre un panneau contenant deux listes déroulantes (je sélectionne les éléments de ces ddl). alors, quand je sélectionne l'autre option de radiobutton puis de nouveau à l'option précédente, je trouve mon ddl maintenir leurs sélections !!! (comme il doesn ' t faire n'importe quelle publication du tout). –

Répondre

1

Par vos commentaires, les DLL conserveront toujours leurs valeurs à moins que vous ne définissiez manuellement la sélection, vous définissez EnableViewState = "false" (qui a désactivé tous viewstate alors). Donc, je pense que vous pouvez avoir besoin du code qui fait:

ddl.SelectedIndex = 0; // or -1 depending on whether you want an item selected 

Après avoir cliqué sur le bouton radio suivant.

+0

Encore et encore je manque des questions importantes, ouais c'est 'viewstate', mais pourquoi quand rediriger vers la même page ne maintient pas l'état? Merci beaucoup –

+1

Une redirection est une requête GET, alors que les publications sont des requêtes POST. Dans une requête POST, il publie un élément __VIEWSTATE, dans lequel viewstate est stocké. –

+0

vraiment merci beaucoup (gros comme). –