我一直在 .NET Framework 4 项目中使用 等服务器标记来设置 runat="server" 控件的可见性,如下所示:
<div id="MyId" runat="server" visible="<%=MyVisiblePropertyOnCodeBehind %>" >
Content
</div>
这适用于框架 4,但现在尝试在框架 3.5 项目上使用它,它似乎不起作用。这是 Framework 4 独有的功能吗?是否有最酷的(和 .aspx 方面)替代方法来设置代码隐藏的可见性?我正在使用丑陋的:
MiId.Visible = MyVisiblePropertyOnCodeBehind
[编辑]解决方案:
感谢您的评论让我了解我的问题和解决方案!
我在不止一件事上有过错。
在 VS2010 项目中我们使用
另外,我没有注意到,在 VS2010 项目中,我们使用的页面不是从“Page”继承的,而是从 CustomPage 类继承的,这会在我没有注意到的情况下自动进行绑定,这让我认为这是一个框架4.0独有的功能。
正如您在这里所说的,如果您有以下标记:
<div id="MyId" runat="server" visible="<%# MyVisiblePropertyOnCodeBehind %>" >
Content
</div>
您可以在代码隐藏中添加以下内容来使其工作:
public bool MyVisiblePropertyOnCodeBehind = true;
protected void Page_Load(object sender, EventArgs e) {
DataBind();
// Or if you want only for one control, MyId.DataBind();
}
据我所知,这个 DataBind() 会降低应用程序的性能。你知道多少钱吗?这是否可以理解为用于大型项目的“专业”技术,还是您认为应该避免?
我喜欢它使标记在单一视图中可读且易于理解的方式,但我不想因此而对缓慢的代码感到内疚。