【发布时间】:2015-08-27 23:27:21
【问题描述】:
我正在尝试使用runat="server" 属性禁用input。这应该基于属性背后的代码。这是我在新的 .NET 3.5 Web 窗体项目中的场景的最小重现:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.IsReadOnly = true;
}
public bool IsReadOnly { get; set; }
}
<%= IsReadOnly %>
<input value="testing" runat="server" id="myinput" disabled="<%# IsReadOnly %>"/>
输入未呈现为禁用。
我做错了什么?我尝试了各种方法都没有效果,包括这些:
-
disabled="<%= IsReadOnly %>":即使IsReadOnly = true也不会禁用 -
disabled='<%= IsReadOnly ? "disabled" : "" %>':当IsReadOnly = false时不起作用 -
<%= IsReadOnly ? "disabled='disabled'" : "" %>标签内:解析器错误
如何根据属性背后的代码禁用 aspx 中的input?
【问题讨论】:
-
为什么不在
Page_Load处理程序中执行myinput.Disabled = IsReadOnly?请注意,您不能在runat="server"元素中使用<%=。 -
这是我目前使用的解决方法。但是,因为 aspx 已经有很多其他类似的部分,所以我想将其 all 保留在那里(或者,当我在几个月后回到这个视图时,我可能会不知所措如何禁用输入)。