Question

Comment pourrais-je aller sur la configuration d'une variable de session à partir du clic sur un ASP:Button devant un AutoPostBack événement se déclenche.

Voici ce que j'ai en ce moment, mais je ne suis pas exactement sûr que je suis en train de faire de ce droit:

 <asp:Button ID="CommitBTN" runat="server" PostBackUrl="~/MMR_Home.aspx" 
 onclick="CommitBTN_Click" UseSubmitBehavior="true" 
 OnClientClick='<% string temp1 = "true"; Session["ClickedFlag"] = temp1; %>' Text="Commit Changes to Database" />

Serait-ce la bonne façon de procéder à cette action, ou vais-je à elle complètement tort?

EDIT:

Changé ma balise button à ceci:

 <asp:Button ID="CommitBTN" runat="server" PostBackUrl="~/MMR_Home.aspx" 
 onclick="CommitBTN_Click" OnClientClick="document.getElementById('<%= Hidden.ClientID
  %>').value='1'" UseSubmitBehavior="true" Text="Commit Changes to Database" />

Je reçois ce que mon erreur:

Erreur d'exécution Microsoft JScript:Impossible de définir la valeur de la propriété "valeur":l'objet est null ou undefined

Était-ce utile?

La solution

Utilisez ceci:

Inside ASPX Fichier:

<form runat="server">
    <asp:Button ID="CommitBTN" runat="server" Text="Button" onclick="CommitBTN_Click" OnClientClick="document.getElementById('HiddenField').value='Ram'"/>
    <asp:HiddenField ID="HiddenField" runat="server" />
</form>

ou

<script type="text/javascript">
    function setMyHiddenField(myValue) {
        document.getElementById('HiddenField').value = myValue;
}
</script>

<form runat="server">
<asp:Button ID="CommitBTN" runat="server" Text="Button" onclick="CommitBTN_Click" OnClientClick="setMyHiddenField('Ram')"/>
<asp:HiddenField ID="HiddenField" runat="server" />

===================================================================

Inside ASPX.CS Fichier

protected void CommitBTN_Click(object sender, EventArgs e)
    {
        Session["ClickedFlag"] = HiddenField.Value;
        Response.Write(Session["ClickedFlag"]);
    }

Il est facile de répliquer "RAM" avec votre valeur.;)

Vous pouvez modifier RAM en Temp1 EASY:

setmyHiddenfield ('Temp1')

ou vous pouvez appeler cette fonction sur vos autres événements de contrôle Befor COMTTBTN pressé

Autres conseils

  1. L'utilisation d'un Hidden Field de contrôle.

  2. Mise à jour le Hidden Field à 1 Bouton Client Cliquez sur.

  3. Mise à jour le Session Value dans le Page Load' event. The Value will be 1 then update the Session variable and set theChamp Cachévalue to 0 underneath theVariable De Session` De Mise À Jour.

  4. La raison pour l'Utilisation de Page Load l'événement, c'est que en cliquant sur le Button comme par le page life cycle la page des événements comme PreInit, Init, InitComplete, de la Précharge, de la Charge s'exécute avant l' execution de Button De contrôle.

Page events l'exécution se déroule comme ci-dessous..

  1. Preinit
  2. Init
  3. InitComplete
  4. Précharge
  5. Charge
  6. Le Contrôle De L'Événement
  7. Charge Complète
  8. Avant De Rendre

Espérons que cela vous aidera...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top