关闭ASP.NET CSS友好适配器

时间:2008-11-08 16:41:59

标签: asp.net jquery gridview

适用于ASP.NET的CSS友好控件适配器非常适合创建易于样式化的标记。 GridView适配器的一大好处是它可以生成THEAD,TBODY和TFOOT标记,这些标记允许您使用jQuery这样的库做一些非常棒的事情 - 例如,Tablesorter用于客户端表排序。

问题是它似乎是通过CSSFriendlyAdapters.browser文件的适配器的全局开/关。如果我目前正在制作一系列GridView并且只想使用CSS友好适配器来制作新的GridView,我该怎么办?

所以我会对两种解决方案感兴趣:

1)扩展或修改GridView(可接受新标签)以输出THEAD和TBODY标签的方法。

2)有条件地应用或禁用CSS友好控制适配器的方法。

3 个答案:

答案 0 :(得分: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控件

e.g。

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

答案 1 :(得分:0)

CSS友好......

  

禁用适配器

     

如果您明确添加   AdapterEnabled =“false”给你   服务器端标记,这些示例适配器   将尝试使用ASP.NET   框架的本机渲染   控制。注意:这不受支持   而且往往效果不好。   从根本上说,框架没有   支持在per上禁用适配器   控制基础。 AdapterEnabled   属性仅用于使用   实验

Source

或者,您可以创建一个派生自GridView的类并覆盖RenderChildren方法。可能需要一些实验来弄清楚如何使这项工作。我没有看过如何在GridView中显示控件,以便为您提供这方面的任何想法。据推测,你只需要确定哪些行是标题/英尺,并在其周围和周围呈现/围绕它们。

答案 2 :(得分:0)

我找到了一种创建THEAD和TBODY标签的方法:

来源:Sortable GridView using jQuery's TableSorter

裸骨细节:

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