2008-11-08 60 views
3

適用於ASP.NET的CSS友好控制適配器非常適合創建易於樣式化的標記。 GridView適配器的一大優點是它生成THEAD,TBODY和TFOOT標籤,它們允許您使用jQuery等庫來做一些非常棒的事情 - 例如Tablesorter用於客戶端表格排序。關閉ASP.NET CSS友好適配器

問題是它似乎是通過CSSFriendlyAdapters.browser文件的適配器的全局開/關。如果我已經有一大堆GridViews正在生產,並且只想使用CSS友好適配器來創建新的GridView,我該怎麼辦?

所以我會感興趣的兩種解決方案:

1)擴展或修改GridView中的一種方式(一個新的標籤是可以接受的)輸出THEAD和TBODY標籤。

2)有條件地應用或禁用CSS友好控制適配器的一種方法。

回答

4

我只是做了一些類似的做了一些研究之後,

你需要繼承你想要使用的控件(在你的情況下是gridview,在我的情況下是radiobuttonlist)

public class UlRadioButtonList : RadioButtonList 
    { 
     protected override void Render(System.Web.UI.HtmlTextWriter writer) 
     { 
      // Call the base RenderContents method. 
      base.Render(writer); 
     } 
    } 

然後纔有.browser文件中引用而不是asp.net控制

如您自定義子類,

<browsers> 
    <browser refID="Default"> 
    <controlAdapters> 
     <adapter controlType="FM.Web.Source.WebControls.UlRadioButtonList" adapterType="FM.Web.Source.ControlAdapters.RadioButtonListAdapter" /> 
    </controlAdapters> 
    </browser> 
</browsers> 
+0

謝謝你,雖然你沒有直接幫助我,但你爲我節省了很多時間,給我提供瞭解決問題的線索。再次感謝! – Saxophonist 2015-03-10 18:21:54

0

CSS友好...

禁用適配器

如果你明確添加 AdapterEnabled = 「假」 你 服務器端的標籤,這些樣品適配器 將嘗試使用ASP。 NET 框架的原生呈現爲 控件。注意:這不支持 ,並且通常無法正常工作。 基本上,框架不支持 控制的基礎上禁用適配器。 AdapterEnabled 屬性僅用於實驗性地使用 。

Source

或者,你可以創建一個GridView控件派生並重寫RenderChildren方法的類。可能需要一些實驗來弄清楚如何完成這項工作。我沒有看過GridView中的控件是如何呈現給你的。據推測,你只需要找出哪些行是頭/腳和渲染/圍繞他們和周圍的其他人。

+0

禁用適配器不是一個非常優雅的解決方案,因爲它需要觸摸每個現有的網格。有條件啓用適配器的解決方案會更好。 重寫RenderChildren方法似乎工作太多,並且對於實際使用來說太容易出錯。 – 2008-11-10 22:29:07

0

我發現創建THEAD和TBODY標籤的方法:

來源:Sortable GridView using jQuery's TableSorter

裸骨詳情:

myGrid.UseAccessibleHeader = true; 
myGrid.HeaderRow.TableSection = TableRowSection.TableHeader; 
myGrid.FooterRow.TableSection = TableRowSection.TableFooter;