2

我有一个公开属性的自定义控件。当我使用固定值设置它时,一切正常。但是,如果我尝试使用 <%= %> 标签设置它的值,它会有点奇怪:

<cc:CustomControl ID="CustomControl" runat="server" Property1='<%= MyProperty %>' />
<%= MyProperty %>

当它被渲染时,自定义控件下方的 <%= MyProperty %> 标记会按照我的预期渲染(使用 MyProperty 的值)。但是,当我进入 CustomControl 的 Render 函数时,Property1 的值实际上是字符串“<%= MyProperty %>”,而不是 MyProperty 的实际基础值。

4

2 回答 2

3

您的控件在OnInit. 因此,如果该语法有效,它无论如何都不会产生您想要的效果,因为MyProperty它将OnInit在渲染时而不是在渲染时进行评估(就像第二次使用一样)。

您想改用数据绑定语法:

<cc:CustomControl ID="CustomControl" runat="server" Property1='<%# MyProperty %>' />

只需确保调用DataBind()容器(Page、UserControl 等)。

或者,您可以在后面的代码中设置属性:

CustomControl.Property1 = MyProperty;
于 2008-10-22T16:04:38.420 回答
1

在 CustomControl 中尝试 <%# MyProperty %> 看看是否可行。

于 2008-10-22T15:59:16.527 回答