web-dev-qa-db-ja.com

asp.netでバインド式を使用するときにテキストをどのように連結しますか

テキストをasp.netWebページ(aspx)のバインディング式に連結するための構文は何ですか。

たとえば、次のようにバインドされているハイパーリンクがある場合:

<asp:HyperLink id="lnkID" NavigateUrl='<%# Bind("Link") %>' Target="_blank" 
                        Text="View" runat="server"/>

たとえば、バインドされた値を文字列と連結するようにテキストをどのように変更しますか?このようなバリエーションは完全に正しくありません。

Text='<%# Bind("ID") + " View" %>'

どちらもしません

Text='<%# String.Concat(Bind("ID"), " View") %>'

テンプレートフィールドを使用する場合は、タグのテキスト部分に「連結」を配置することもできます。

<asp:TemplateField HeaderText="Name" SortExpression="sortName">
<ItemTemplate>
   <asp:LinkButton ID="lbName" runat="server" OnClick="lbName_Click" CommandArgument='<%# Eval("ID") %>'>
         <%--Enter any text / eval bindind you want between the tags--%>
         <%# Eval("Name") %> (<%# Eval("ID") %>)
   </asp:LinkButton>
</ItemTemplate>

これにより、次のような出力が得られます。

名前(ID)

テンプレート列の内側。

代わりにEvalを使用してください。

Text='<%# Eval("ID", "{0} View") %>'

値が更新されない場合は、評価も優れています。ここで、Bindは双方向のデータバインディングを許可します。

利用した String.Format("{0}{1}"...前に良い効果があります。

3
Andrew Rollings

次を使用できます。

CommandArgument='<%#String.Format("{0}|{1}", Eval("ArgZero"), Eval("ArgOn"))%>'
1
Lea