C# 如何以编程方式设置aspx文件中控件的属性?
这可能是一个非常愚蠢的问题,但我似乎无法让它发挥作用。我在许多地方使用以下语法将aspx文件中控件的属性动态绑定到资源条目,例如C# 如何以编程方式设置aspx文件中控件的属性?,c#,.net,asp.net,expression,C#,.net,Asp.net,Expression,这可能是一个非常愚蠢的问题,但我似乎无法让它发挥作用。我在许多地方使用以下语法将aspx文件中控件的属性动态绑定到资源条目,例如 <SomeFunnyControl Text="<%$ Resources : ResClass, ResEntry %>" /> 我想对包含一些常量的类做类似的事情,比如 <SomeFunnyControl Text="<%= MyConstantsClass.MyStringConstant %>" />
<SomeFunnyControl Text="<%$ Resources : ResClass, ResEntry %>" />
我想对包含一些常量的类做类似的事情,比如
<SomeFunnyControl Text="<%= MyConstantsClass.MyStringConstant %>" />
但这似乎不起作用,它只是将文本设置为精确的表达式,而不进行计算。我正在使用ASP.NET 3.5 btw
我已经尝试过数据绑定方法,但是我得到一个HttpParseException说
数据绑定表达式仅适用于
在具有
数据绑定事件
然后调用lbl.DataBind();或者数据绑定标签的某个容器。
然后调用lbl.DataBind();或者数据绑定标签的某个容器。您的代码应该如下所示:
<asp:Label ID="lblMyStringConstant" runat="server" Text='<%# MyConstantsClass.MyStringConstant %&>'></asp:Label>
lblMyStringConstant.DataBind();
<asp:Label ID="lblTest" runat="server"><%= MyNamespace.MyConstantsClass.MyStringConstant %></asp:Label>
(如果在整个页面或此标签的父容器上调用DataBind,则不必这样做,因为它将为其所有子容器调用DataBind)您的代码应如下所示:
<asp:Label ID="lblMyStringConstant" runat="server" Text='<%# MyConstantsClass.MyStringConstant %&>'></asp:Label>
lblMyStringConstant.DataBind();
<asp:Label ID="lblTest" runat="server"><%= MyNamespace.MyConstantsClass.MyStringConstant %></asp:Label>
(如果您在整个页面或此标签的父容器上调用DataBind,则不必这样做,因为它将为其所有子容器调用DataBind)如果您这样做,它实际上应该可以工作:
public static class MyConstantsClass
{
public static string MyStringConstant = "Hello World!";
}
或者
public class MyConstantsClass
{
public const string MyStringConstant = "Hello World!";
}
如果你这样声明的话
<asp:Label ID="Label1" runat="server" Text="<%= MyNamespace.MyConstantsClass.MyStringConstant %>"></asp:Label>
它将不工作,输出将为“
”
你也可以这样写:
<asp:Label ID="lblMyStringConstant" runat="server" Text='<%# MyConstantsClass.MyStringConstant %&>'></asp:Label>
lblMyStringConstant.DataBind();
<asp:Label ID="lblTest" runat="server"><%= MyNamespace.MyConstantsClass.MyStringConstant %></asp:Label>
这对我来说非常有效,但请注意,您必须在ASPX定义中为类提供完全限定的命名空间。至少在其他情况下,它对我不起作用。如果您有这样的功能,它实际上应该可以工作:
public static class MyConstantsClass
{
public static string MyStringConstant = "Hello World!";
}
或者
public class MyConstantsClass
{
public const string MyStringConstant = "Hello World!";
}
如果你这样声明的话
<asp:Label ID="Label1" runat="server" Text="<%= MyNamespace.MyConstantsClass.MyStringConstant %>"></asp:Label>
它将不工作,输出将为“
”
你也可以这样写:
<asp:Label ID="lblMyStringConstant" runat="server" Text='<%# MyConstantsClass.MyStringConstant %&>'></asp:Label>
lblMyStringConstant.DataBind();
<asp:Label ID="lblTest" runat="server"><%= MyNamespace.MyConstantsClass.MyStringConstant %></asp:Label>
这对我来说非常有效,但请注意,您必须在ASPX定义中为类提供完全限定的命名空间。至少在其他方面它对我不起作用。本文:可能很有趣/有用(尽管是为ASP.NET 2.0编写的)
它(似乎)能让你写。。。Text=”“…
。那可能会有帮助,不是吗?不过,这是相当大的开销。本文:可能很有趣/有用(尽管是为ASP.NET 2.0编写的)
它(似乎)能让你写
。。。Text=”“…
。那可能会有帮助,不是吗?不过,这是一个相当大的开销。作为回报的愚蠢问题是:MyConstantsClass是静态的吗?不,它有什么不同吗?MyStringConstant是public const stringhmm..哪个类中的public const字符串??MyConstantsClass到底是什么?标签所在的页面上是否有公共/受保护的属性?如果您认为调用的属性可能有问题,请尝试Text=''否,这是一个完全独立的类,其中MyStringConstant是公共常量字符串字段(不是属性)。我认为只要返回字符串的是服务器端可执行表达式,它就不重要了。返回的愚蠢问题是:MyConstantsClass是静态的吗?不,它会有区别吗?MyStringConstant是public const stringhmm..哪个类中的public const字符串??MyConstantsClass到底是什么?标签所在的页面上是否有公共/受保护的属性?如果您认为调用的属性可能有问题,请尝试Text=''否,这是一个完全独立的类,其中MyStringConstant是公共常量字符串字段(不是属性)。我认为只要返回字符串的是服务器端可执行表达式,它就不重要了。好吧,我必须承认我对它做了一点简化,我不是为标签做的,而是为嵌套在控件中的一些属性做的,我真的不能影响这么多。有没有更简单的方法?当你对这些控件进行数据绑定时,它应该以类似的方式工作?也许可以发布一个更准确的例子?好吧,我必须承认我简化了一点,我不是对标签做的,而是对嵌套在控件中的一些属性做的,我真的不能影响这么大。没有更简单的方法吗?当你对这些控件进行数据绑定时,它应该以类似的方式工作,也许可以给出一个更准确的例子?