我一直在处理这个问题几个小时,但找不到解决方案。现在我在一个 Web 应用程序中工作,我的第一个问题是我想动态创建一个 XML ......然后我意识到在回发之后,Xml 正在重置。然后我只是,“好的,让我们创建一个 HiddenField 并将节点作为字符串存储在 HiddenField 值属性中,所以最后我只创建一个新的 XmlElement,创建一个带有 HiddenField.Value 的 InnerXml 的文档片段并附加fragmentto XmlElement"...但是 HiddenField.Value 也会重置每次单击按钮...我刚刚用标签测试了这个方法,它可以工作...
基本上,我有一个页面被 AJAXControlToolKit TabContainer 控件分成两部分。第一个表单用于用户主要数据,而第二个选项卡有一个表单,旨在根据用户的需要多次填写表单,因为它用于存储家庭成员。所以过程是填写一个家庭成员数据,单击按钮并将其存储在 HiddenField.Value 中,填写第二个家庭成员数据并再次单击以添加新的家庭成员并连接到 HiddenField.Value...但是我意识到在第一次单击 Load Page 方法后, HiddenField.Value 再次为空...
也许不是那么重要,但在 UpdatePanel 上只有按钮和一个列表框,用于显示用户保存的所有家庭成员的一些数据,因此在单击时唯一刷新的对象是列表框。
正如我刚才所说,如果改为使用 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);}