使用ASP.NET 4.0ASP.NET直放站 - HiddenField工作时未声明
这里有一个奇怪的位,我的代码有效,但我不知道为什么!
所以我有一些HTML像这样:
<asp:Repeater runat="server" ID="uxMyRepeater" ClientIDMode="Predictable">
<ItemTemplate>
<asp:Button runat="server" Text="Submit" />
<asp:HiddenField runat="server" ID="uxIsVisibleHiddenField" Value="0" />
</ItemTemplate>
</asp:Repeater>
和后端:
Protected Sub uxMyRepeater_ItemCommand(source As Object, e As RepeaterCommandEventArgs) Handles uxMyRepeater.ItemCommand
uxIsVisibleHiddenField.Value = "1"
End Sub
所以出于某种原因这个作品,通常我会希望有uxMyRepeater_ItemCommand申报uxIsVisibleHiddenField像这样:
Dim uxIsVisibleHiddenField As HiddenField = DirectCast(e.Item.FindControl("uxIsVisibleHiddenField"), HiddenField)
但是在这个特定的ca它在没有声明性陈述的情况下工作。任何人都可以阐明为什么它会这样做?
请注意,这只是示例代码,不是我的实际代码。
编辑
忘记提到有围绕每个的RepeaterItem一个UpdatePanel,除去这将导致Visual Studio来给我,倒是我期待一个错误:“uxIsVisibleHiddenField”未声明。由于其保护级别,它可能无法访问。
值是否实际更新? – 2013-05-07 12:26:53
在debuger中检查它是什么问题? – Roar 2013-05-07 12:35:50
在调试器中,它获取控制权并确定设置值。 – Darthtong 2013-05-07 13:27:43