Я работал над этой проблемой часами и не могу найти решение.
Сейчас я работаю в веб-приложении, и моя первая проблема заключалась в том, что я хотел создать XML динамически ... Затем я понял, что после обратной передачи Xml перераспределяется. Затем я просто хочу сказать: «Хорошо, давайте создадим HiddenField и сохраним узлы в виде строки в свойстве значения HiddenField, поэтому в конце я просто создаю новый XmlElement, создаю фрагмент документа с InnerXml объекта HiddenField.Value и присоединяю фрагмент к XmlElement "... Но HiddenField.Value также сбрасывает каждый щелчок по кнопке ... Я только что проверил этот метод с меткой, и он работает ...
По сути, у меня есть страница, разделенная на две части с помощью элемента управления TabContainer AJAXControlToolKit. Первая форма предназначена для основных данных пользователя, в то время как вторая вкладка имеет форму, которая предназначена для заполнения формы столько раз, сколько пользователь хочет, поскольку она предназначена для хранения членов семьи. Таким образом, процесс состоит в том, чтобы заполнить данные члена семьи, нажать кнопку и сохранить их в HiddenField.Value, заполнить данные второго члена семьи и снова щелкнуть, чтобы добавить нового члена семьи и объединить его с HiddenField.Value ... Но Я понял, что после первого щелчка по методу Load Page, HiddenField.Value снова пусто ...
Может быть, это не так важно, но на панели обновления есть только кнопка и список, в котором отображаются некоторые данные всех членов семьи, сохраненных пользователем, поэтому единственным объектом, который обновляется при щелчке, является список.
Как я только что сказал, если вместо этого использую HiddenField.Value, я использую Label.Text, все работает ...
<%@ 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);}