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

问题在于,这似乎是通过CSSFriendlyAdapters.browser文件对适配器进行的全局打开/关闭。如果我现在已经有大量的GridViews正在生产并且只想为新的CSS友好适配器使用该怎么办?

因此,我对两种类型的解决方案感兴趣:

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

2)一种有条件地应用或禁用CSS Friendly Control Adapters的方法。

最佳答案

我做了一些研究之后就做了类似的事情

您需要子类化要使用的控件(在您的情况下为gridview,在我的情况下为单选按钮列表)

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>

10-05 20:42
查看更多