6

条件に基づいて、名前の横に * を配置しようとしています。

私のコード:

 <asp:Label ID="lblOne" runat="server"   Text= '<%# Eval("name") + ((Eval("StatusId").Equals(0) && Eval("assignfilename") == null) ? " *" : "") %>' > </asp:Label>

ありがとう

BB

4

6 に答える 6

3

インライン コードで簡単に処理できる限界に挑戦している場合は、代わりにいつでも関数を作成できます。次に、次のようなことができます。

 <asp:Label ID="lblOne" runat="server"   Text= '<%# EmitSomeText(Eval("name"), Eval("StatusId"), Eval("assignfilename")) %>' />

これにより、複雑な式を必要な数の行に分割することができます。CodeBehind またはその他のクラスで関数を使用できます。

アクセスできるクラスにバインドしている場合は、読み取り専用プロパティを追加できます。次に、Eval("MyNewProperty") のようなことができます。

再利用する必要があるフォーマットを公開するためにそれを使用します。たとえば、Customer.CustomerFullName は、最初にコンマで区切られた姓 (一方または他方または両方が欠落している状況をインテリジェントに処理する) とオプションの役職を返す場合があります。

于 2011-10-05T23:57:50.637 に答える
3

単純な 1 回限りのシナリオでは、コード ビハインド関数は正常に機能します。

基になるオブジェクトのプロパティとしてコーディングすることも検討してください。

たとえば、生成されたテキストが複数のインスタンスで使用される場合、さまざまなフォームまたはコントロールで Evals を使用して関数を数回コーディングする必要があります。

NameWithStatusStar などのデータ オブジェクトにプロパティを作成すると、Eval("NameWithStatusStar") 内のコードを使用して、ラベルをプロパティに直接バインドできます。

これは、一連の式よりも説明的で再利用可能であり、変更も簡単です (たとえば、別のフィールドを追加したり、数式を変更したりするなど)。

于 2011-10-06T00:08:24.457 に答える
3

次のように実行できます。

Text='<%#"CustomText "+Eval("Name")%>'
于 2014-03-07T12:49:59.817 に答える
1
Text='<%#String.Concat(Eval("UserId"), Eval("Username")) %>'

これは私のプロジェクトでうまくいきました。ここで見つけました:

テキストを Eva​​l で連結する

于 2016-04-14T02:36:08.487 に答える
-1
 Text='<%# string.Concat(Eval("FirstName"), " ", Eval("LastName"))%>'

これは私のプロジェクトでうまくいきました。ここで見つけました:

テキストを Eva​​l で連結する

于 2016-04-14T02:33:23.237 に答える