2009-08-04 93 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的方法。对我有好处。