Frage

Zunächst werde ich für den unklaren Titel meiner Frage entschuldigen. Ich war nicht sicher, wie man kurz und bündig mein Problem in einem Titel beschreiben.

Ich habe ein verstecktes Feld in meinem .aspx

<input type="hidden" name="hid1" value="0" />

Ich mag während des Seitenladeereignisses den Wert dieses Feldes setzen, und wenn es kein Postbacks.

protected void Page_Load(object sender, EventArgs e) {
    if (!Page.IsPostBack) {

        // This doesn't work!
        Request.Form["hid1"] = "1";

    }

    if (Page.IsPostBack) {

        // This DOES work!
        Request.Form["hid1"] = "1";

    }
}

Das Problem ist, dass der Antrag nicht das versteckte Feld während des Seitenladeereignisses in Form Array enthält, wenn es kein Postbacks (dh - das erste Mal der Seite getroffen wird). Nachfolgende Zugriffe auf der Seite (dh - Postbacks). Ergebnis in Form Array das versteckte Feld mit

Ich bin sicher, dass es mit dem Lebenszyklus der Seite zu tun hat, aber was ich wirklich wissen muß, ist Wie kann ich das versteckte Feld während des Seitenladeereignisses gesetzt und wenn es kein Postback?

EDIT: Ich wirklich, wirklich will nicht die runat = „server“ -Attribut zu übernehmen!

War es hilfreich?

Lösung

Sie können eine Eigenschaft in Ihrer Seite Klasse definieren und dann den Eigenschaftswert in Ihrem Code ändern:

    protected string HiddenFieldValue { get; set; }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
            HiddenFieldValue = "postback";
        else
            HiddenFieldValue = "not postback";
    }

Dann das versteckte Formularfeld wie folgt definieren, so dass es Wert ist auf dem Eigenschaftswert festgelegt ist:

    <input type='hidden' id='hidden1' value='<%=HiddenFieldValue %>' />

Wenn Sie nur der Wert bildet die Eigenschaft während eines Postbacks oder Nicht-Postbacks einstellen möchten können Sie den Zustand als auch hinzufügen:

    <input type='hidden' id='hidden1' value='<% if(IsPostBack) { %> <%=HiddenFieldValue%> <% } %>' />
scroll top