用于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>