C# HiddenField Value属性返回到空时;回邮“;使用AJAX UpdatePanel
我已经研究这个问题好几个小时了,找不到解决办法。 现在我在一个web应用程序中工作,我的第一个问题是我想动态地创建一个XML…然后我意识到在回发之后,XML被重新压缩了。然后我只是想,“好吧,让我们创建一个HiddenField,并在HiddenField值属性中将节点作为字符串存储,所以最后我只需创建一个新的XmlElement,使用HiddenField.value的InnerXml创建一个文档片段,并将该片段附加到XmlElement”…但是HiddenField.value还会重置每次单击按钮的次数。。。我刚刚用一个标签测试了这个方法,它是有效的 基本上,我使用AJAXControlToolKit选项卡容器控件将页面一分为二。第一个表单用于用户主数据,而第二个选项卡具有一个表单,用于根据用户需要多次填充表单,因为它用于存储家庭成员。因此,这个过程是填充一个家庭成员数据,单击按钮并将其存储在HiddenField中。Value,填充第二个家庭成员数据,然后再次单击以添加一个新的家庭成员并连接到HiddenField.Value…但我意识到,在第一次单击Load Page方法后,HiddenField.Value再次为空 也许没那么重要,但在UpdatePanel上只有一个按钮和一个列表框,用于显示用户保存的所有家庭成员的一些数据,因此单击时刷新的唯一对象是列表框 正如我刚才所说的,如果使用HiddenField.Value,而使用Label.Text,则一切正常C# HiddenField Value属性返回到空时;回邮“;使用AJAX UpdatePanel,c#,.net,postback,hiddenfield,C#,.net,Postback,Hiddenfield,我已经研究这个问题好几个小时了,找不到解决办法。 现在我在一个web应用程序中工作,我的第一个问题是我想动态地创建一个XML…然后我意识到在回发之后,XML被重新压缩了。然后我只是想,“好吧,让我们创建一个HiddenField,并在HiddenField值属性中将节点作为字符串存储,所以最后我只需创建一个新的XmlElement,使用HiddenField.value的InnerXml创建一个文档片段,并将该片段附加到XmlElement”…但是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>
我不确定是什么原因造成的,您可能需要尝试一种更简单的方案来进行故障排除 如果您的方法与
标签
控件一起使用,则始终可以使用不可见的标签,而不是隐藏字段
<asp:Label runat="server" id="hidFamiliares" style="display:none;"/>
有点猜测
但是从代码的外观来看,当您在UpdatePanel
中提交按钮事件时,它会重新加载面板,但不会重新加载HiddenField
的值,因此当UpdatePanel
内容加载时,它仍然会将HiddenField
视为空
将
HiddenField
包装在相同的UpdatePanel
中可能会起作用。或者您可以尝试将其包装在自己的UpdatePanel
中,然后在按钮事件中调用UpdatePanel.Update()
,确保面板上的UpdateMode
设置为'Conditional'
。向我们展示一些代码,而不是描述它。我会在几秒钟内尝试一下……因此标签的文本属性与HiddenField的值属性不同?这就像我需要的那样工作……但我仍然有点困惑为什么HiddenField不工作工作…两个测试之间没有额外的界限…我有同样的问题,你的解决方案对我有效。我不得不说这很奇怪。
<asp:Label runat="server" id="hidFamiliares" style="display:none;"/>