この種のものが何度も必要な場合は、ユーザーコントロールにすることを検討する必要があります。そうすれば、必要なものを簡単にコーディングして、周囲に何が必要かを気にせずに再利用できます。その時点で、非表示フィールドを必要なものに設定し、後でプログラムでアクセスすることができます。
または、さらに良いことに、Microsoft MVCが適切かどうかを検討し、このようなものを作成して、そこで置き換え可能なビューとして機能させます。
コメントに基づいて編集する:これをどのように使用する必要があるかについては、はっきりとはわかりません。そのため、隠しフィールドの使用法について多くの仮定を立てている場合、これは大まかなことです。
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="test.ascx.cs" Inherits="stuff.test" %>
<div class="option-box"><a href="javascript:void(0);" class="option-box-item"> </a>
<span class="option-box-testo">Hello</span>
<asp:label id="label1" runat="server" visible="false"/>
</div>
次に、コードビハインドでドロップインします。
public Label HiddenField
{
get { return (Label)FindControl("label1"); }
}
そこから、好きなように呼び出されたこれらのコントロールを、使用しているものにいくつでも追加して、同様のFindControl呼び出しを使用できます(または、複数の呼び出しが必要な場合は、NamingContainerに配置します。次のアイデアについては、この投稿を参照してください。これを行う方法。使用している場所でユーザーコントロールを取得したら、UserControl.HiddenField.Textを実行して、探しているラベルを取得する必要があります。
これがもたらす最大の推測は、これらの非表示フィールドはすべて一般的に分離して処理する必要があるということです。これは、それぞれを同様に、ただし互いに独立して処理しているように見えるため、ForEachが私に与えた印象です。これらすべてを相互の値に基づいて処理する必要がある場合は、リピーターの提案を使用したほうがよいでしょう。