0

私はこのaspxコードを持っています:

<asp:TemplateField HeaderText="Name"  SortExpression="Firmierung">
   <ItemTemplate>
      <asp:HyperLink ID="HyperLink" runat="server" NavigateUrl='<%#Eval("Id", "DetailInfo.aspx?Id={0}") %>' Text='<%#Bind("Name") %>' />
   </ItemTemplate>
</asp:TemplateField>

if 条件を追加して、オペランド + を Text で使用できるようにするには、次のようにします。

<asp:TemplateField HeaderText="Name"  SortExpression="Firmierung">
    <ItemTemplate>
        <% if(Condition is true) { %>
           <asp:HyperLink ID="HyperLink" runat="server" NavigateUrl='<%#Eval("Id", "DetailInfo.aspx?Id={0}") %>' Text='<%#Bind("Name") + ("Active") %>' />
        <% } else { %>
           <asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl='<%#Eval("Id", "DetailInfo.aspx?Id={0}") %>' Text='<%#Bind("Name") %>' />
        <% } %> 
    </ItemTemplate>
</asp:TemplateField>

この場合、オペランド + の使い方がわかりません。どんな助けでも感謝します。ありがとう!

4

2 に答える 2

0

これを試してみてください

Text='<%# String.Format({0}{1},Eval("Name"),Eval("Active")) %>' 

また

Text='<%# String.Format({0}{1},Bind("Name"),Bind("Active")) %>'

詳細については、次のリンクを参照してください。

Eval() を使用した NavigateUrl を使用したハイパーリンク。間違いはどこですか?

于 2012-09-20T16:33:28.747 に答える
0

ではできませんBindEvalC# コードを追加することはできますが、それBindはできません。Evalは実際にはメソッド呼び出しですがBind、フレームワークによって何らかのバインディング コードに変換された単なる宣言であり、その形式は次のようにする必要がありますBind("FieldName")(ただし、形式を追加することはできます)。

Hyperlink Textプロパティはクライアントが編集できないため、十分Evalなはずであり、1 行に書き込むことができます。

<asp:HyperLink ID="HyperLink" runat="server" 
      NavigateUrl='<%#Eval("Id", "DetailInfo.aspx?Id={0}") %>' 
      Text='<%# Eval("Name") + (Condition ? + Eval("Active") : "") %>' />
于 2012-09-20T15:16:46.193 に答える