私はこの問題を数時間にわたって解決し、解決策を見つけることができませんでした。 今私はWebアプリケーションで作業しています。私の最初の問題はXMLを動的に作成したかったということでした...そして、ポストバック後にXMLが再設定されていることに気がつきました。しかし、私はちょうど "OK、HiddenFieldを作成し、HiddenFieldの値プロパティに文字列としてノードを保存しておきます。最後に、新しいXmlElementを作成し、HiddenField.ValueのInnerXmlでドキュメントフラグメントを作成し、フラグメント化されたXmlElement "...しかし、HiddenField.Valueもボタンのクリックをリセットします...私はラベルとIT WORKSでこのメソッドをテストしました...HiddenField ValueプロパティAJAX UpdatePanelを使用している "ポストバック"のときに空白に戻る
基本的に私は2つのページをAJAXControlToolKit TabContainerコントロール。最初のフォームはユーザーのメインデータ用ですが、2番目のタブは、フォームをユーザーが望む数だけフォームを入力するように意図されたフォームを持ち、家族のメンバーを格納するためです。したがって、家族のメンバーデータを入力し、ボタンをクリックしてHiddenField.Valueに格納し、2番目のファミリメンバーデータを入力してもう一度クリックして新しいファミリメンバーを追加し、HiddenField.Valueに連結するプロセスですロードページメソッドの最初のクリック後、HiddenField.Valueが再度空白になっていることに気付きました。
多分それほど重要ではないかもしれませんが、UpdatePanelにはボタンとリストボックスがあります。ユーザーが保存した家族のメンバーであるため、クリックで更新される唯一のオブジェクトはリストボックスです。
代わりに私がLabel.Text、すべての動作を使用HiddenField.Valueを使用している場合、私はちょうど、言ったように...
<%@ 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);}
説明するのではなく、コードを表示してください。 – Brissles
ちょうどそれを追加しました、ありがとう – Symphonicmind