4

ascx ファイルでは、次のようなデータバインド フィールドからのデータを提示しています。

<%# Eval("Description")%>

データ ソースはコード ビハインドからバインドされています。

時々Description、置換が必要な文字がいくつか含まれています。次のようなことができれば幸いです。

<%# Replace(Eval("Description"), "a", "b")%>

しかしもちろん、それは databind 操作では許可されていません(<%#)

コード ビハインドでフィールドを抽出し、変数に抽出して ascx ページに変数を出力するのは非常に見苦しいため、コード ビハインドでハード コードしたくありません。ascxページで直接置換できる(おそらく本当に簡単な)方法があることを願っています。

4

2 に答える 2

16

You can cast the value to a string and handle it like so:

<%# ((string)Eval("Description")).Replace("a", "b") %>

Or

<%# ((string)DataBinder.Eval(Container.DataItem, "Description")).Replace("a", "b") %>

Be careful though, because if Description is null you will hit a NullReferenceException. You could do the following to avoid this:

<%# ((string)Eval("Description") ?? string.Empty).Replace("a", "b") %>
于 2013-01-29T15:36:08.090 に答える
0

コードビハインドから入力される、必要なすべての情報(これを含む)を含む匿名タイプにデータバインドできます。これは、変数に抽出するよりもはるかに醜いものではありません。

于 2013-01-29T15:39:24.883 に答える