C# Asp:标签从本地主机上的HiddenField获取值,但在实时版本上不获取
我正在用asp.net开发一个网站。在其中一个页面上,我初始化了一个包含多个隐藏字段的转发器 在转发器外部,在页面加载期间,我使用从特定转发器项目中的隐藏字段中获取的文本值初始化标签。在localhost中进行测试不会导致任何问题。然而,在live版本中,我注意到其中一个标签没有显示任何值,尽管链接到它的HiddenField确实包含所需的值 以下是相关页面中的代码示例: aspx:C# Asp:标签从本地主机上的HiddenField获取值,但在实时版本上不获取,c#,asp.net,webforms,C#,Asp.net,Webforms,我正在用asp.net开发一个网站。在其中一个页面上,我初始化了一个包含多个隐藏字段的转发器 在转发器外部,在页面加载期间,我使用从特定转发器项目中的隐藏字段中获取的文本值初始化标签。在localhost中进行测试不会导致任何问题。然而,在live版本中,我注意到其中一个标签没有显示任何值,尽管链接到它的HiddenField确实包含所需的值 以下是相关页面中的代码示例: aspx: <form id="detailForm" runat="server"> <asp:
<form id="detailForm" runat="server">
<asp:ScriptManager ID="ScriptManagerGlobal" runat="server" EnableScriptGlobalization="true" />
<table>
<tr>
<th>Code d'Activation</th>
<td>
<asp:Label ID="L_Code_Activation" runat="server" />
</td>
</tr>
<tr>
<th>Dernière action </th>
<td>
<asp:Label ID="L_Libelle_Actuel" runat="server" />
</td>
</tr>
</table>
<br />
<asp:UpdatePanel ID="UP_KSS" runat="server" UpdateMode="Always">
<ContentTemplate>
<table>
<asp:Repeater ID="RepeaterContainer" runat="server">
<HeaderTemplate>
<tr>
<th>Date de Requète
</th>
<th>Action
</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<asp:HiddenField ID="HF_Id_kss_container" runat="server" Value='<%#Eval("id_kss_container") %>' />
<tr>
<td>
<asp:HiddenField runat="server" ID="CodeActivationHidden" Value='<%# Eval("CodeActivation") %>' />
<asp:Label ID="L_DateRequest" runat="server" Text='<%# LaDate(Eval("DateRequest")) %>' />
</td>
<td>
<asp:HiddenField runat="server" ID="LibelleHidden" Value='<%# (LOperation(Eval("Libelle"))) %>' />
<asp:Label ID="L_Libelle" runat="server" Text='<%#(LOperation(Eval("Libelle"))) %>' />
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</form>
问题是:当在localhost中运行时,页面工作正常,这里的两个标签都显示了预期值。但是,在live网站上运行时,只有“L_Libelle_Actuel”标签显示正确的值
“L\U代码激活”标签仅转换为id为=“L\U代码激活”的空白范围。奇怪的是,在检查结果页面时,我可以看到链接到此标签的Hiddenfield中存在期望值
有人知道为什么会发生这个问题,为什么它不会发生在本地主机上吗?我已经搜索了很多地方,但没有看到任何人有同样的问题,也没有能够在本地环境中重现它。如果你知道是什么引起的,你知道如何修复它吗
谢谢,祝你今天愉快
编辑:忘了说了,虽然这似乎是一件小事,但我在查看navigator的开发控制台时没有收到错误或警告。就像标签从未初始化过一样
编辑2:下面是结果的样子。我将实际数据替换为“[value]”,因为它是合理的信息
以下是在这两种情况下生成的标签和hiddenfield的外观。我再次用“[value]”替换了预期的数据
本地主机:
<span id="L_Code_Activation">[value]</span>
...
<input type="hidden" name="RepeaterContainer$ctl01$CodeActivationHidden" id="RepeaterContainer_CodeActivationHidden_0" value="[value]">
[值]
...
直播网站:
<span id="L_Code_Activation"></span>
...
<input type="hidden" name="RepeaterContainer$ctl01$CodeActivationHidden" id="RepeaterContainer_CodeActivationHidden_0" value="[value]">
...
编辑3:问题实际上来自服务器本身,而不是代码。我应该先检查一下,很抱歉…为什么不在PageLoad上发出ajax请求?在服务器端更新数据并不总是一个好主意 所以我建议你: -在aspx.cs文件中,添加一个初始化模型并返回模型JSON流的函数。 -在js文件中添加一个ajax请求,该请求将调用您的函数(aspx.cs)。根据它的结果,您应该能够刷新组件
您可以参考以下内容:为什么不在PageLoad上发出ajax请求?在服务器端更新数据并不总是一个好主意 所以我建议你: -在aspx.cs文件中,添加一个初始化模型并返回模型JSON流的函数。 -在js文件中添加一个ajax请求,该请求将调用您的函数(aspx.cs)。根据它的结果,您应该能够刷新组件
你可以这样说:实际上,请忽略这个问题。问题不是源于代码,而是源于服务器本身。我刚开始没有检查问题的根源,很抱歉浪费了您的时间。实际上,请忽略这个问题。问题不是源于代码,而是源于服务器本身。我刚开始没有检查问题的根源,很抱歉浪费了您的时间。由于您检索代码激活值的方式与检索libelle值的方式不同,我想知道这是否与数据相关。代码激活正在从最后一个repeater项中检索,可能是本地记录少于out live?你能给我们看看渲染的输出吗?嗨!虽然我有几个问题要澄清这个问题,但我并不认为代码中有任何错误。您要将多少项数据绑定到中继器?您是从第一行取实际值,从最后一行取激活值?另外,您没有在页面加载中检查Page.IsPostBack,这是不是出于设计,您想在每次回发时重新进行数据绑定?@Gabe我尝试从中继器的第一个、最后一个或任何其他项检索信息。没有任何变化,因此这不是问题的根源。@Esko项目数据绑定的数量不同,从单个条目到6个或更多条目。我确实想在每次回发时进行数据绑定,这是我没有在页面加载中检查回发的原因。由于检索代码激活值的方式与检索libelle值的方式不同,我想知道这是否与数据相关。代码激活正在从最后一个repeater项中检索,可能是本地记录少于out live?你能给我们看看渲染的输出吗?嗨!虽然我有几个问题要澄清这个问题,但我并不认为代码中有任何错误。您要将多少项数据绑定到中继器?您是从第一行取实际值,从最后一行取激活值?另外,您没有在页面加载中检查Page.IsPostBack,这是不是出于设计,您想在每次回发时重新进行数据绑定?@Gabe我尝试从中继器的第一个、最后一个或任何其他项检索信息。没有任何变化,因此这不是问题的根源。@Esko项目数据绑定的数量不同,从单个条目到6个或更多条目。我确实想在每次回发时进行数据绑定,这是我没有在页面加载中检查回发的原因。我不确定我是否理解,但这可能是因为我以前从未使用过Ajax。如果我做对了,我应该发出Ajax请求来调用初始化标签的codebehind函数?(initLabel)这样做与在pageload方法中简单调用my函数有什么区别?ASP有一个页面生命周期,在页面加载时初始化对象。在此期间,页面将显示其组件,因此在页面加载时很难初始化组件(请参阅:)。这就是我建议您通过ajax请求的原因。及
<span id="L_Code_Activation"></span>
...
<input type="hidden" name="RepeaterContainer$ctl01$CodeActivationHidden" id="RepeaterContainer_CodeActivationHidden_0" value="[value]">