0

<small>CustomValidator で使用されるデフォルトのタグの代わりにタグを挿入するように CustomValidator を拡張しました<span>。現在、これを行うために次のコードを使用しています。

public class MyValidator : CustomValidator
{
    protected override void Render(HtmlTextWriter writer)
    {
        writer.RenderBeginTag("small");
        base.Render(writer);
        writer.RenderEndTag();
    }
}

ただし、これは<span>タグをタグ内に配置するだけ<small>です。

<small>
    <span 
        id="ContentPlaceHolder1_MainForm_CustomAliasValidator"
        class="error"
        style="visibility:hidden;">
        Alias contains invalid characters.
    </span>
</small>

そのため、タグの属性を取得して に<span>挿入する必要があるよう<small>です。ただし、writer関数で使用できる唯一の引数ですRender。私の知る限りHtmlTextWriter、html コンテンツをレンダリングするためのクラスのみです。これらの属性はどこbase.Render()から取得し、クラスでどのように使用できますか?

4

1 に答える 1

1

WebControl.Renderのドキュメントには、 WebControl.RenderBeginTagWebControl.RenderContents、およびWebControl.RenderEndTagを呼び出すことが記載されています。Render基本動作を変更せずに、ラッピング タグを出力するようにオーバーライドしただけです。

WebControl.TagKeyプロパティをオーバーライドして、タグHtmlTextWriterTag.Smallに変更することができるはずです。<span><small>

あなたの質問に答えるには(あなたの場合は元のタグRenderBeginTagを出力します)、最初にHtmlTextWriter.AddAttributeを呼び出すWebControl.AddAttributesToRenderを呼び出します。これらの属性は、 HtmlTextWriter.RenderBeginTagへの次の呼び出しで表示されます。<label>

于 2013-09-25T05:34:22.110 に答える