0

マークアップに次の検証概要コントロールがあります。

<asp:ValidationSummary ID="vsValErrs" CssClass="errors" HeaderText="<div><%# TranslatedMessage%></div>" runat="server" />

ここで、TranslatedMessage はコード ビハインドで定義されたプロパティです。問題は、検証サマリー コントロールが次のようにレンダリングされることです。

<div id="vsValErrs" class="errors" style="color:Red;">
    <div>
        <!--[CDATA[<%# TranslatedMessage%-->
        ]]&gt;
    </div>
</div>

おそらく]]>部分がコメント ブロックの外にあるため、コンテンツが正しくレンダリングされません。なぜこれが起こるのですか?

疑問に思っている人のために説明すると、HeaderText 属性に div がある理由は、それを使用してヘッダー テキストのスタイルを設定しているためです (エラー クラスで最初の div を選択する CSS セレクターを使用)。おそらくベストプラクティスではありませんが、これが私が思いついた唯一の方法です。

4

1 に答える 1

0

次のようなpageloadイベントでheadertextプロパティ値を設定してみてください

protected void Page_Load(..)
{
..
ValidationSummury1.HeaderText="<div>"+TranslatedMessage+"</div>";
}

翻訳されたメッセージが利用できない場合は、それをセッション変数に入れ、HeaderTextプロパティに設定します。

于 2012-06-23T19:34:02.710 に答える