ASP.NET 4.0 の使用
ここでは少し奇妙なコードです。私のコードは機能しますが、その理由がわかりません!
だから私は次のような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)
ただし、この特定のケースでは、宣言ステートメントがなくても機能します。なぜこれを行うのか、誰かが光を当てることができますか?
これはサンプル コードのみであり、実際のコードではないことに注意してください。
編集
各 RepeaterItem の周りに UpdatePanel があることを忘れていました。これを削除すると、Visual Studio でエラーが発生します。「uxIsVisibleHiddenField」は宣言されていません。保護レベルにより、アクセスできない場合があります。