在用户控件中使用代码块
我尝试在发送到 Web 用户控件的属性中使用代码块语法:
<uc1:MyControl ID="MyControl1" runat="server" SomeProperty="<%= somevalue %>"/>
用户控件声明了公共属性 SomeProperty,并且还使用代码块来显示属性值:
<p><% = SomeProperty %></p>
不幸的是,我页面上的输出
<p><%= somevalue %></p>
并不是实际值。有人知道这个问题的一些解决方法吗?
I tried using a codeblock syntax within a property sent to a web user control:
<uc1:MyControl ID="MyControl1" runat="server" SomeProperty="<%= somevalue %>"/>
The user control has the public property SomeProperty declared and also uses code block to display the property value:
<p><% = SomeProperty %></p>
The output on my page is unfortunately
<p><%= somevalue %></p>
And not the actual value. Anyone know of some workaround for this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您正在尝试在服务器端控件上分配服务器端值 - 这是不可能的。
您可以在客户端代码中使用代码块(没有
runat="server"
属性),这当然不适用于服务器端控件。在后面的代码 (
ascx
)、OnRender
之前设置属性:You are trying to assign a server side value on a server side control - this is not possible.
You can use code blocks in client side code (that doesn't have a
runat="server"
attribute), this of course doesn't not apply to server side controls.Set the attribute in the code behind (
ascx
), beforeOnRender
:尝试将属性的值分配给 Label 并调用控件上的 .DataBind() 方法。
Try assigning the value of the property to a Label and call the .DataBind() method on the control.