2009-08-04 10 views
0

ASP.NET DataGrid Webコントロールを拡張して、多くの追加機能を追加したいと思いますが、最も重要なことは、グリッドの本体をスクロール可能にしたいと考えています。DataGridを拡張する

私はHTMLを完成させましたが、コントロールのレンダリングをオーバーライドするのは混乱します。最終的な制御の基本的な構造は、そうのようになります。

<div id="grid1" class="grid"> 
<div class="grid-header"> 
    <div class="grid-header-l"></div> 
    <div class="grid-header-c"> 
     <div class="grid-header-wrapper"> 
      <div class="wrapper">Grid Header</div> 
     </div> 
    </div> 
    <div class="grid-header-r"></div> 
</div> 
<div class="grid-body"> 
    <div class="grid-column-headers"> 
     <div class="grid-column-headers-l"></div> 
     <div class="grid-column-headers-c"> 
      <div class="grid-column-headers-wrapper"> 
       <table class="grid-column-header-table" cellpadding="0" cellspacing="0" border="0"> 
        <tbody> 
         <tr> 
          <td> 
           <div class="grid-column-header-cell asc"> 
            <div class="grid-column-header-cell-wrapper"> 
             <div class="grid-column-header-text" title="Column Header Name">Column Header Name</div> 
             <a href="javascript:;" class="grid-column-header-button" title="Hide/Show Columns"><span></span></a> 
             <div class="grid-column-header-divider"></div> 
            </div> 
           </div> 
          </td> 
          <td> 
           <div class="grid-column-header-cell"> 
            <div class="grid-column-header-cell-wrapper"> 
             <div class="grid-column-header-text" title="Column Header Name">Column Header Name</div> 
             <a href="javascript:;" class="grid-column-header-button" title="Hide/Show Columns"><span></span></a> 
             <div class="grid-column-header-divider"></div> 
            </div> 
           </div> 
          </td> 
          <td class="last"> 
           <div class="grid-column-header-cell"> 
            <div class="grid-column-header-cell-wrapper"> 
             <div class="grid-column-header-text" title="Column Header Name">Column Header Name</div> 
             <a href="javascript:;" class="grid-column-header-button" title="Hide/Show Columns"><span></span></a> 
             <div class="grid-column-header-divider"></div> 
            </div> 
           </div> 
          </td> 
         </tr> 
        </tbody> 
       </table> 
      </div> 
     </div> 
     <div class="grid-column-headers-r"></div> 
    </div> 
    <div class="grid-body-content"> 
     <div class="grid-body-content-t"> 
      <div class="grid-body-content-t-l"></div> 
      <div class="grid-body-content-t-c"></div> 
      <div class="grid-body-content-t-r"></div> 
     </div> 
     <div class="grid-body-content-m"> 
      <div class="grid-body-content-m-l"></div> 
      <div class="grid-body-content-m-c"> 
       <div class="grid-body-content-wrapper"> 
        <div class="scroll-wrapper"> 
         <table class="grid-content-table" cellpadding="0" cellspacing="0" border="0"> 
          <tbody> 
           <tr> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
           </tr> 
           <tr> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
           </tr> 
           <tr> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
           </tr> 
           <tr> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
           </tr> 
           <tr> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
           </tr> 
           <tr> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
           </tr> 
           <tr> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
           </tr> 
           <tr> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
           </tr> 
           <tr> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
           </tr> 
           <tr> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
           </tr> 
           <tr> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
           </tr> 
           <tr> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
           </tr> 
           <tr> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
            <td> 
             <div class="grid-content-cell">Cell Text/Value</div> 
            </td> 
           </tr> 
          </tbody> 
         </table> 
        </div> 
       </div> 
      </div> 
      <div class="grid-body-content-m-r"></div> 
     </div> 
     <div class="grid-body-content-b"> 
      <div class="grid-body-content-b-l"></div> 
      <div class="grid-body-content-b-c"></div> 
      <div class="grid-body-content-b-r"></div> 
     </div> 
    </div> 
</div> 

誰もが最善のアプローチはどうあるべきかを知っていますか?誰も私にチュートリアルを教えてもらえますか?私は、レスポンスストリームに送信され変更される前に、レンダリングされたHTMLをキャプチャした場所に気づいたことがあります。私はしかし、そのアプローチを使用して好きではありません。

答えて

0

コントロールの出力を変更したいだけなので、コントロールを拡張すると実際はレンダリングをオーバーライドしなければならなくなりました。

出力を変更するために使用できるコントロールアダプターに関する記事が見つかりました。 「CSS Control Adapters」という名前のプロジェクトがCodePlexに存在します。 DataGridだけでなく、より多くのコントロールに役立っています。

1

thisアプローチを試すことができます。私のために良い作品。