HiddenField Valeur de la propriété de retour à vide lors de la “publication” à l'aide d'AJAX UpdatePanel

J'ai travaillé avec ce problème pendant des heures et ne peux pas trouver une solution.
Maintenant, je travaille dans une Application web et mon premier problème a été que j'ai voulu créer un XML dynamiquement...Puis j'ai réalisé qu'après la publication, le Xml a été resseting. Ensuite, j'ai juste bien, "ok, permet de créer un HiddenField et conserver les nœuds en tant que chaîne de caractères dans la HiddenField valeur de la propriété, de sorte que à la fin je viens de créer un nouveau XmlElement, créer un fragment de document avec un InnerXml de la HiddenField.De la valeur et de fixer le fragmentto XmlElement"...Mais HiddenField.La valeur est également réinitialisée chaque fois que vous cliquez sur un bouton... je viens de tester cette méthode avec une étiquette et IL FONCTIONNE...

Fondamentalement, j'ai une page divisée en deux avec la AJAXControlToolKit TabContainer de Contrôle. La première forme est pour l'utilisateur de données principal, tandis que le second onglet a une forme qui est destiné à remplir le formulaire autant de fois que l'utilisateur veut, car sa pour le stockage des membres de la famille. Ainsi, le processus consiste à remplir un membre de la famille de données, cliquez sur le bouton et de le stocker dans le HiddenField.Valeur, remplir le deuxième membre de la famille de données et cliquez sur nouveau pour ajouter un nouveau membre de la famille et de les enchaîner à la HiddenField.De la valeur...Mais j'ai réalisé que, après le premier clic sur le Chargement de la Page, la méthode d'HiddenField.La valeur est de nouveau vide...

Peut-être pas si important que cela, mais Sur l'UpdatePanel il y a juste Le bouton et une zone de liste pour indiquer certaines données de tous les membres de la famille que l'utilisateur a enregistrées, de sorte que le seul objet qui actualise sur le clic est la zone de liste.

Que je viens de dire, si au lieu d'utiliser un HiddenField.Valeur-je utiliser une Étiquette.Le Texte, Tout Fonctionne...

<%@ Page Language="c#" MasterPageFile="/Plantilla.master" AutoEventWireup="true" Inherits="alta_personal_interno" %>
<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="cc1" %>
<asp:Content runat="server" id="contentDefault" ContentPlaceHolderId="ContentPlaceHolderPagina">
<div align="left">
<table style="width: 100%; background-color: maroon">
<tbody>
<tr>
<td>
<span id="ctl00_ContentPlaceHolder1_lblTitulo" class="EtiquetaMedianoBlanco">                                    
<asp:Label ID="lblTituloPExt" runat="server" Text="Alta de Personal Interno" />
</span>
</td>
</tr>
</tbody>
</table>
</div>
<cc1:TabContainer runat="server">
<cc1:TabPanel runat="server" HeaderText="Titular">
<ContentTemplate>
<--!Code with Form Elements-->
<asp:Button ID="btnAgregarNvo" runat="server" Text="Guardar" onclick="btnAgregarNvo_Click"/>
</ContentTemplate>    
</cc1:TabPanel> 
<cc1:TabPanel runat="server" HeaderText="Familia">
<ContentTemplate>
<asp:HiddenField runat="server" id="hidFamiliares"></asp:HiddenField>
<!--Code with Form Elements-->
<asp:UpdatePanel runat="server" id="upFamiliares">
<ContentTemplate>
<asp:Button ID="btnAgregarFamiliar" runat="server" Text="Agregar" onclick="btnAgregarFamiliar_Click"/>
<asp:Button ID="btnQuitarFamiliar" runat="server" Text="Quitar" onclick="btnQuitarFamiliar_Click"/>
<br/>
<asp:ListBox runat="server" ID="lbFamiliares"/>
</ContentTemplate>
</asp:UpdatePanel>   
</ContentTemplate>    
</cc1:TabPanel> 
</cc1:TabContainer> 

//------------------------------CODE BEHIND------------------------------------
private XmlDocument objXML;
protected void Page_Load(object sender, EventArgs e){
objXML = new XmlDocument();}
protected void btnAgregarFamiliar_Click(object sender, EventArgs e){
XmlElement xmlFamiliar = objXML.CreateElement("familiar");
AddAttribute("nombre",txtNombreF.Text,xmlFamiliar);
AddAttribute("apaterno",txtApF.Text,xmlFamiliar);
hidFamiliares.Value+=xmlFamiliar.InnerXml;}
private void AddAttribute(string name, string val, XmlElement parent){
XmlAttribute at = objXML.CreateAttribute(name);
at.Value = val;
parent.SetAttributeNode(at);}
Nous montrer un peu de code, plutôt que de les décrire.
Juste de l'ajouter, merci

OriginalL'auteur Symphonicmind | 2012-01-18