2009-05-02 17 views
0

誰もASP.netページ、サーバー側のすべてのプレーンhtml <p>要素を選択する方法を知っていますか?私の場合は、ブラウザに行く前に、すべての人にテキスト操作を少し適用したいと思います。ASP.Netのタグ名で静的なhtml要素を選択

runat = serverを追加し、次にそれぞれのFindControlを追加できることに気付きました。しかし、それは多くのコードです。

これはjavascriptのgetElementsByTagNameと同じですが、サーバー側です。

ありがとうございます! ジャストアイデア::

+0

私はあなたがこれをやりたいのですか? – Cerebrus

+0

彼はpタグをはっきりと嫌う;) –

+0

nah、pタグの嫌悪感はない。私はタイポグラフィのものを少ししたい、引用符をカールする、そのようなもの。サーバタグのためには簡単ですが、通常のタグではそう簡単ではありません。私は本当にこれが.Netに組み込まれていないことに驚いています。 –

答えて

1

、ページのために、ブラウザのアダプタを使用することができますSystem.Web.UI.Pageから派生したクラス - >マイページ

あなたはBrowserAdapterを作成し、出力にあなたは見つけるでしょう、このページのレンダリングオーバーライドする必要があります

生成されたHTMLはクライアントブラウザに送られます。この場合、いくつかのXSLTの突然変異や単純なXML(XPATH)の置換を行うことができ、その結果、あなたは任務が達成されます:)。

<browsers> 
<browser refID="default"> 
    <controlAdapters> 
     <adapter controlType="System.Web.UI.Page" 
       adapterType="yournamespace.TestAdapter" /> 
    </controlAdapters> 
</browser> 

public class TestAdapter : PageAdapter 
    { 
     protected override void Render(HtmlTextWriter writer) 
     { 
      /* Get page output into string */ 
      var sb = new StringBuilder(); 
      TextWriter tw = new StringWriter(sb); 
      var htw = new HtmlTextWriter(tw); 

      // Render into my writer 
      base.Render(htw); 

      string page = sb.ToString(); 

         // Here you can change output of render 

      writer.Write(page); 
     } 
    } 
+0

が動作する可能性があります。これをテストしましたか?しかしXSLT/XPathは少し遠いですが、htmlは長いショー、特にサーバーコントロールの出力ではxmlではありません:( –

+0

確かに動作しています:)私は通常このアクションにXSLTを使用していません。ページのローカライズに最適な方法です。 – omoto

0

あなたのハンドラの出力をフィルタリングすることにより、HTTPフィルタモジュールを考えてみましょう。

すべての単一のpタグがrunat = serverでない限り、サーバー上のdocument.getElementsByTagNameに相当するものはありません。

http://msdn.microsoft.com/en-us/magazine/cc301704.aspx

関連する問題