适用于ASP.NET的CSS友好控件适配器非常适合创建易于样式化的标记。 GridView适配器的一大好处是它可以生成THEAD,TBODY和TFOOT标记,这些标记允许您使用jQuery这样的库做一些非常棒的事情 - 例如,Tablesorter用于客户端表排序。
问题是它似乎是通过CSSFriendlyAdapters.browser文件的适配器的全局开/关。如果我目前正在制作一系列GridView并且只想使用CSS友好适配器来制作新的GridView,我该怎么办?
所以我会对两种解决方案感兴趣:
1)扩展或修改GridView(可接受新标签)以输出THEAD和TBODY标签的方法。
2)有条件地应用或禁用CSS友好控制适配器的方法。
答案 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 属性仅用于使用 实验
或者,您可以创建一个派生自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;