2012-01-28 16 views
1

以下のコードをaspxページで実行すると、問題なく動作します。.NETでEvalを使用してCssClassに文字列を入力する方法

<%# (DataBinder.Eval(Container.DataItem,"ExtendedProperties['ShowDetail']")) == null ? "show showdetail" : ((bool)(DataBinder.Eval(Container.DataItem,"ExtendedProperties['ShowDetail']")) == true ? "showdetail hide" : "show showdetail ") %> 

ただし、ボタンの属性に貼ると、サーバータグが無効であると表示されます。インナー'CssClass属性値の両端を区切る終わる - 問題

<asp:Button ID="btnShowDetail" OnClick="BindRecommendation" Text="" runat="server" 
CssClass='<%# (DataBinder.Eval(Container.DataItem,"ExtendedProperties['ShowDetail']")) == null ? "show showdetail" : ((bool)(DataBinder.Eval(Container.DataItem,"ExtendedProperties['ShowDetail']")) == true ? "showdetail hide" : "show showdetail ") %>' BorderStyle="None" /> 

答えて

1

あなたの文字列が"'をミックスとは何ですか。

タイプのみを使用する必要があります。

合併症はそう'が有効な区切り文字ではありません、あなたがC#の文字列を使用する必要があり、それは文字列を使用してインデックス付きプロパティを評価することで、あなたは必見使用"

あなたはそれらを2倍にすることにより、HTMLソースに"を逃れることができます。

ExtendedProperties[""ShowDetail""] 
+0

を実際にはあまり機能していません。 –

+0

@Ryu - 実際にあなたのコメントは、_what_が機能していないと判断し、何のエラー/警告/例外を表示しているかを示します。そのようなコメントをすることはできません。 – Oded

+0

@Ryu - エスケープシーケンスでアップデートされました。 – Oded

関連する問題