リピーターコントロールを使用している場合、一般的な方法でコントロールにアクセスすることはできません(私が知る限り)。したがって、C#で文字列を処理する必要があるほとんどの状況で、const文字列を使用しようとします。
そこで、const文字列を使用してクラスを作成しました。これらは、リピーター内のコントロールのID名を定義します。これにより、コードでプレーンな文字列を使用するよりも一般的な方法でコントロールにアクセスできるようになります。例:
public class FormularRepeaterFieldIDs
{
public const string RubrikLiteral = "BuchungRubrikLiteral";
public const string RubrikDropDownList = "BuchungRubrikList";
public const string RubrikIdHiddenField = "BuchungRubrikIdHidden";
}
これにより、このようなアクセスが可能になります(もちろん、このためのより簡単なアクセスラッパーを作成できます)。
Literal rubrikLiteral = (Literal)e.Item.FindControl(TimeExpressHelper.FormularRepeaterFieldIDs.RubrikLiteral);
rubrikLiteral.Visible = false;
これで、Webformsフロントエンドコードで事前定義されたIDを使用することもできます。現時点では次のように見えます。
<asp:Literal ID="BuchungRubrikLiteral" Text='<%#Eval("strRubrik")%>' runat="server" />
このようなものを作ることは可能でしょうか?
<asp:Literal ID="<% FormularRepeaterFieldIDs.RubrikLiteral %>" Text='<%#Eval("strRubrik")%>' runat="server" />