asp.net Champ caché qui ne sauvegarde pas les valeurs lors de la mise à jour du code derrière
J'utilise un champ caché pour stocker la valeur sur la page. asp.net. Fondamentalement, j'ai défini la valeur du champ masqué chaque fois que la valeur dans le formulaire varie, c'est-à-dire le nom, la date, etc. Ce champ est sur un formulaire Web contenant une page principale et figure dans la section Contenu:
Je change la valeur de champ dans javascript, Causer une fonction chaque fois qu'un événement onchange Fonctionne dans d'autres éléments de la gestion des formulaires Web:
Jusqu'à présent, tout va bien. Lorsque la page est chargée, la valeur de champ cachée est égale 'false', Et si je ne modifie pas de valeurs dans le formulaire Web, il reste faux. Chaque fois que je change l'autre élément de contrôle, la fonction est appelée. javascript et la valeur du champ caché est mise à jour pour 'true'. Et encore une fois tout cela parfaitement.
Après avoir envoyé le formulaire et mettre à jour la base de données, je vais installer la valeur de champ cachée à 'false' Dans le code derrière:
Mais lorsque j'appuie un autre bouton et que vous dessinez le compte à rebours, la valeur cachée du champ est toujours au niveau 'true'.
Quelqu'un peut-il expliquer pourquoi c'est le cas? J'ai traversé le code derrière et immédiatement après avoir changé la valeur que je vois la valeur 'false'. Sur la page là-bas asp:UpdatePanel, Mais le champ caché ne fait pas partie de ce panneau.
EDIT:
J'utilise ce code pour vérifier la valeur du champ dans le code pour le deuxième retour, après avoir été trouvée dans false À la dernière étape du premier retour. La valeur reste B. true Pour une raison quelconque de la deuxième transmission de rendement, après avoir été trouvée dans true à javascript du côté du client et ensuite retourné à false Dans le code derrière, comme indiqué ci-dessus:
</asp:content>
<asp:content contentplaceholderid="MainContent" id="Content2" runat="server">
<asp:hiddenfield id="hdnDirtyFlag" runat="server" value="false"></asp:hiddenfield>
Je change la valeur de champ dans javascript, Causer une fonction chaque fois qu'un événement onchange Fonctionne dans d'autres éléments de la gestion des formulaires Web:
<asp:textbox cssclass="niceInput" id="tbFirstName" maxlength="40" onchange="SetHiddenVariable//;" runat="server" width="150"></asp:textbox>
<script type="text/javascript">
function SetHiddenVariable// {
// Set the value of the hidden variable so we know a field has been updated
var hiddenControl = '<%= hdnDirtyFlag.ClientID %>';
document.getElementById/hiddenControl/.value = 'true';
}
</script>
Jusqu'à présent, tout va bien. Lorsque la page est chargée, la valeur de champ cachée est égale 'false', Et si je ne modifie pas de valeurs dans le formulaire Web, il reste faux. Chaque fois que je change l'autre élément de contrôle, la fonction est appelée. javascript et la valeur du champ caché est mise à jour pour 'true'. Et encore une fois tout cela parfaitement.
Après avoir envoyé le formulaire et mettre à jour la base de données, je vais installer la valeur de champ cachée à 'false' Dans le code derrière:
hdnDirtyFlag.Value = "false";
Mais lorsque j'appuie un autre bouton et que vous dessinez le compte à rebours, la valeur cachée du champ est toujours au niveau 'true'.
Quelqu'un peut-il expliquer pourquoi c'est le cas? J'ai traversé le code derrière et immédiatement après avoir changé la valeur que je vois la valeur 'false'. Sur la page là-bas asp:UpdatePanel, Mais le champ caché ne fait pas partie de ce panneau.
EDIT:
J'utilise ce code pour vérifier la valeur du champ dans le code pour le deuxième retour, après avoir été trouvée dans false À la dernière étape du premier retour. La valeur reste B. true Pour une raison quelconque de la deuxième transmission de rendement, après avoir été trouvée dans true à javascript du côté du client et ensuite retourné à false Dans le code derrière, comme indiqué ci-dessus:
if /hdnDirtyFlag.Value == "true"/
{
UpdateSecurityObject//;
}
</asp:content>
Aucun résultat connexe trouvé
Invité:
Pour répondre aux questions, connectez-vous ou registre
2 réponses
Felix
Confirmation de:
Vous aurez besoin d'une/ Mettre un champ caché à l'intérieur UpdatePanel /Ou vous pouvez le mettre dans votre propre panneau avec UpdateMode, Installé sur toujours/; ou B./avoir une certaine javascript Du côté du client, qui est déclenché lorsque l'appel est terminé UpdatePanel, qui retourne la valeur false.
Gregoire
Confirmation de:
Change ton HiddenField sur ça:
Ça fait mal asp.net Enregistrez la valeur de ce champ dans les messages inversés, car vous souhaitez qu'il soit installé dans false Chaque fois que la page est chargée.