<%= %>之前的ASP.NET自定义控件渲染 执行代码以填充属性

发布于 2024-07-08 18:25:38 字数 418 浏览 7 评论 0原文

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

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

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

I have a custom control that exposes a property. When I set it using a fixed value, everything works correctly. But if I try to set its value using the <%= %> tags, it goes a little whacky:

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

When this gets rendered, the <%= MyProperty %> tag underneat the custom control is rendered as I expect (with the value of MyProperty). However, when I step into the Render function of the CustomControl, the value for Property1 is literally the string "<%= MyProperty %>" instead of the actual underlying value of MyProperty.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

╰つ倒转 2024-07-15 18:25:38

您的控件是在 OnInit 期间从标记初始化的。 因此,如果该语法有效,它无论如何都不会达到您想要的效果,因为 MyProperty 将在 OnInit 期间评估,而不是在渲染时评估(就像第二个那样)用法)。

您想改用数据绑定语法:

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

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

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

CustomControl.Property1 = MyProperty;

You control is initialized from the markup during OnInit. So if that syntax worked, it wouldn't have the effect you wanted anyway, since MyProperty would be evaluated during OnInit and not at render time (like it is with the second usage).

You want to use the data binding syntax instead:

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

Just make sure to call DataBind() on the container (Page, UserControl, etc).

Alternatively, you can set the property in your code behind:

CustomControl.Property1 = MyProperty;
葬花如无物 2024-07-15 18:25:38

尝试 <%# MyProperty %> 在 CustomControl 中,看看是否有效。

Try <%# MyProperty %> in the CustomControl and see if that works.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文