条件に基づいて名前の横に*を配置しようとしています。インラインコードASP.NETで2つ以上の文字列を連結する
マイコード:
<asp:Label ID="lblOne" runat="server" Text= '<%# Eval("name") + ((Eval("StatusId").Equals(0) && Eval("assignfilename") == null) ? " *" : "") %>' > </asp:Label>
おかげ
BB
条件に基づいて名前の横に*を配置しようとしています。インラインコードASP.NETで2つ以上の文字列を連結する
マイコード:
<asp:Label ID="lblOne" runat="server" Text= '<%# Eval("name") + ((Eval("StatusId").Equals(0) && Eval("assignfilename") == null) ? " *" : "") %>' > </asp:Label>
おかげ
BB
あなたは簡単にインラインコードを扱うことができるものの限界をプッシュしている場合は、常に代わりに関数を書くことができます。これは、あなたが少し厄介なことができ、それはする必要がありますが、多くの行の中に複雑な式を破ることができます
<asp:Label ID="lblOne" runat="server" Text= '<%# EmitSomeText(Eval("name"), Eval("StatusId"), Eval("assignfilename")) %>' />
:次に、あなたのような何かを行うことができます。 CodeBehindまたは他のクラスで関数を使用することができます。
アクセス権を持つクラスにバインドする場合は、readonlyプロパティを追加できます。次に、Eval( "MyNewProperty")のようなことをすることができます。
私はそれを私が再利用する必要があるフォーマットを公開するために使用します。たとえば、顧客が医療関係者でPhDとMDがある場合など、Customer.CustomerFullNameは姓が最初にカンマ(別の場所または両方が欠けている状況をインテリジェントに処理)とオプションのタイトルで区切って返されます。
シンプルな1回限りのシナリオでは、コードビハインド機能は正常に機能します。
また、それらを基礎となるオブジェクトのプロパティとしてコーディングすることも考えられます。
たとえば、生成されるテキストが複数のインスタンスで使用される場合は、Evalsを使用してさまざまなフォームまたはコントロールで関数を何度もコーディングする必要があります。
データオブジェクトにプロパティを作成します。 NameWithStatusStarの場合、ラベルはEval( "NameWithStatusStar")内のコードを持つプロパティに直接バインドできます
これは一連の式よりも説明的で再利用可能ですし、さらに簡単に変更できます数式など)
私は実際にインラインコードに慣れていないので、コードは少し複雑に思えます。 しかし、Eval( "レコード")とテキストを連結する必要もあります。そこで、どのように連結するかという質問に答えるために、アンパサンドが私のために働いていました。
'<%# Eval("name") & " *" %>'
これが誰にも役立つことを願っています。
あなたはこのようにそれを行うことができます。
Text='<%#"CustomText "+Eval("Name")%>'
もう少し詳しい文脈を提供すればもっと役に立ちます。 – gpgekko
Text='<%# string.Concat(Eval("FirstName"), " ", Eval("LastName"))%>'
これは私のプロジェクトで私のために働きました。ここでそれを見つけた:
複数の質問に同じ回答を投稿しないでください。 1つの良い答えを投稿し、投票/フラグを立てて他の質問を重複として閉じます。質問が重複でない場合は、*あなたの質問に対する回答を調整してください。* –
Text='<%#String.Concat(Eval("UserId"), Eval("Username")) %>'
をこれが私のプロジェクトで私のために働きました。見つかりました:
表示されている出力またはエラーは何ですか? –