0

ユーザーがテーブルを編集できる Web アプリがあります。Render メソッドを上書きして、このテーブル (編集を含む) を .html ファイルとして保存し、後で画像に変換します。画像に入れたくないものがいくつかあります。具体的には、2 つのボタンと DropDownList です。関心のあるレンダリングされた HTML は次のとおりです。

<div class="centered" id="selectReport">
    <select name="Archives" onchange="javascript:setTimeout(&#39;__doPostBack(\&#39;Archives\&#39;,\&#39;\&#39;)&#39;, 0)" id="Archives" style="width:200px;">
        <option selected="selected" value="Dashboard_Jun-2012">Dashboard_Jun-2012</option>
    </select>
</div>

Render メソッドは次のとおりです。

protected override void Render(HtmlTextWriter writer)
{
    using (HtmlTextWriter htmlwriter = new HtmlTextWriter(new StringWriter()))
    {

        base.Render(htmlwriter);
        string renderedContent = htmlwriter.InnerWriter.ToString();

        string output = renderedContent.Replace(@"<input type=""submit"" name=""viewReport"" value=""View Report"" id=""viewReport"" />", "");
        output = output.Replace(@"<input type=""submit"" name=""redoEdits"" value=""Redo Edits"" id=""redoEdits"" />", "");

        Regex regex = new Regex(@"<select name=""Archives""[.\\n]*(?<date>\\w{3}-\\d{4})[.\\n]*</select>");
        Match match = regex.Match(output);
        Response.Write(match.Success);
        string date = match.Groups["date"].Value;
        Regex.Replace(output, @"<select name=""Archives""[.\\n]*</select>", date);

        writer.Write(renderedContent);
    }
}

Replace の 2 つの呼び出しは期待どおりに機能しており、2 つのボタンが削除されています。DropDownList でやろうとしているのは、表示される値に置き換えることですが、Response.Write(match.Success) が「False.」を出力するため、パターン マッチは失敗します。

私の理解では、この正規表現は機能するはずです。もちろん、私は多くの代替手段を試しましたが、成功しませんでした.

アドバイスをいただければ幸いです。

よろしく。

4

0 に答える 0