質問

GridView ItemTemplate で複数の EVAL フィールドを使用する最良の方法は何ですか?

外観の書式設定やハイパーリンク/JavaScriptなどの設定を制御したいと考えています。

役に立ちましたか?

解決

IMO によれば、さらに明確なのは次のとおりです。

<%# String.Format("{0} - {1}", Eval("Name1"), Eval("Name2")) %>

他のヒント

私は以前これを使用していました(悪い、私は知っています):

<%# Eval("Name1", "{0} - ")%> <%#Eval("Name2")%>

結果 = 'ジョン - スミス'

しかし、同じデータバインドされたグループに 2 つ (またはそれ以上) の Eval を置くこともできることを発見しました。

<%#Eval("Name1") & " - " & Eval("Name2")%>

結果 = 'ジョン - スミス'

または

<%# "First Name - " & Eval("Name1") & ", Last Name - " & Eval("Name2")%>  

結果 = '名 - ジョン、姓 - スミス'

Eval と Bind は両方とも最悪です。
なぜリフレクションを通じてプロパティを取得するのでしょうか?次のように直接アクセスできます。

((MyObject)Container.DataItem).MyProperty

実行時にそのオブジェクトが未知であるわけではありません。とにかく、それは私の2セントです。

これと同じことを行う最も簡単な方法があります...

<asp:Label ID="lblName" runat="server" Text='<%#Eval("FirstName").ToString() +", "+ Eval("LastName").ToString() %>'></asp:Label>

.

<%#Eval("FirstName").ToString() +", "+ Eval("LastName").ToString() %>

ここでは、両方のオブジェクトが文字列に変換されて連結されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top