次のように、<%=whatever %> のようなサーバー タグを使用して runat="server" コントロールの可視性を設定する .NET Framework 4 プロジェクトで作業しています。
<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() はアプリケーションのパフォーマンスを低下させる可能性があります。どのくらいのアイデアを持っていますか?これは、大規模なプロジェクトで使用される「プロの」テクニックとして理解できますか?それとも避けるべきだと思いますか?
マークアップを読みやすく、1 つのビューで理解しやすくする方法が気に入っていますが、遅いコードで罪を犯したくはありません。