您知道,如果您使用的是中继器控件,则无法以通用方式访问控件(据我所知)。因此,我们尝试在 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" />