0

このコードを書くためのより良い方法があるかどうか疑問に思いました。

<%#Eval("hasAccess").Equals(true) ? "<a href='/CaseActivities.aspx?" + Eval("caseURL") + "'>" + Eval("caseName") + "</a>" : Eval("caseName")%> 

<% If (Eval("hasAccess") ... を試しましたが、asp.netはそれが好きではありません:)

私は何かを望んでいました

<% If Eval("hasAccess") %>
do stuff .. 
<% else %>
do other stuff.

しかし、IFでEvalを使用すると、面倒になります..何か考えはありますか?

4

1 に答える 1

4

ほとんどの場合、これはスクリプトレットではなく、コード ビハインドで行う必要があります。データバインディングの場合、いくつかのオプションがあります:

  1. これらの操作をデータ バインディングの一部として実行するのではなく、基になるデータ ソースをバインドする前に変更して、データ バインディング自体が値をそのまま受け取るようにします。

  2. 列を取得して適切な値を返すメソッドをコード ビハインドに追加します。これにより、データ バインディング メソッドは、この列を渡すメソッドへの呼び出しを評価するだけで済みます。

  3. 複雑になる場合は、マークアップでデータ バインディングを行わないでください。コード ビハインドでデータ バインディング イベントを使用します (利用可能な場合)。

それらは、それらを使用しようとする優先順にリストされています。

于 2013-01-29T22:29:29.047 に答える