Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# HiddenField Value属性返回到空时;回邮“;使用AJAX UpdatePanel_C#_.net_Postback_Hiddenfield - Fatal编程技术网

C# HiddenField Value属性返回到空时;回邮“;使用AJAX UpdatePanel

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还会重置每次单

我已经研究这个问题好几个小时了,找不到解决办法。 现在我在一个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,则一切正常

<%@ 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;"/>