ASP.Net: Comment maintenir la zone de texte de l'Etat après la publication

Je voudrais savoir comment maintenir le contrôle de l'état qui a été modifié en Javascript.

J'ai deux zones de texte, un DropDownList et un bouton (tous les Runat=Server) en C# ASP.net 2010 Express.

La première zone de texte est de simplement accepter ce que des données la saisie de l'utilisateur.
Deuxième zone de texte de permettre à l'état change en fonction DDL valeur sélectionnée.
Si ddl valeur sélectionnée est "-", deuxième zone de texte sera Activé = False.

Si ce n'est "-", il deviendra Enabled = True. Cette option activer est fait à l'aide de Javascript.


Dans mon Chargement de la Page de l'événement, j'ai code ci-dessous.

if (!IsPostBack)
{
     txtKey2.Text = "";
     txtKey2.BackColor = System.Drawing.ColorTranslator.FromHtml("#CCCCCC");
     txtKey2.Enabled = false;
}

Et dans ma page aspx, j'ai un peu de javascript qui va effacer la zone de texte données et de désactiver la zone de texte.

Ici est pour la Deuxième zone de texte.

<asp:TextBox ID="txtKey2" runat="server" Width="425px" EnableViewState="False"></asp:TextBox>


Et voici pour DDL.

<asp:DropDownList ID="selKey1" runat="server" onchange="EnableSelkey(this.value,1)">
    <asp:ListItem Value="0">-</asp:ListItem>
    <asp:ListItem Value="1">AND</asp:ListItem>
    <asp:ListItem Value="2">OR</asp:ListItem>
</asp:DropDownList>

Voici le code de mon Javascript. (J'ai un plan pour mettre en œuvre d'autres textbox et ddl donc, dans mon code j'ai d'Autre si la condition).

function EnableSelkey(val, strID) {
    var txtBox;
    if (strID == "1")
        txtBox = document.getElementById('<%= txtKey2.ClientID %>');
    else if (strID == "2")
        txtBox = document.getElementById('<%= txtKey3.ClientID %>');
    else
        txtBox = document.getElementById('<%= txtKey4.ClientID %>');

    if (val != 0) {
        txtBox.disabled = false;
        txtBox.style.backgroundColor = "White";
        txtBox.value = "";
        txtBox.select();
    }
    else {
        txtBox.disabled = true;
        txtBox.style.backgroundColor = "#CCCCCC";
        txtBox.value = "";
    }
}

Je n'ai rien dans l'événement clic du bouton.

En utilisant au-dessus de tout le code, quand je lance le projet, le chargement de la page Ok.
La deuxième zone de texte est activé état est défini sur False (par le biais de l'événement Page_Load). Jusqu'à présent Ok.

Puis, à partir de mon navigateur, j'ai le choix ddl valeur pour les autres, au lieu de "-", la zone de texte devenu permettre en raison de javascript. C'est Ok.

J'ai d'entrée de la valeur et cliquez sur le bouton. Page de Publication qui se passe ici. Zone de texte est toujours activé (en raison de EnableViewState = False pour ma zone de texte).

- Je choisir ddl valeur à "-", deuxième zone de texte est devenu handicapé.

Cliquez sur le bouton, la page de publication arriver, mais cette fois la zone de texte est toujours activé. << C'est la question que je suis en train de résoudre. - Je changer EnableViewState, ViewStateMode dans des valeurs différentes mais toujours le même.

Est qu'il ya une solution pour cela?

Voici mon test de l'URL de l'image.
L'état 1 ,
L'état 2 ,
L'état 3

Désolé pour le long post.

InformationsquelleAutor scsfdev | 2013-06-14