如何强制 asp.net GridView 控件在 <thead> </thead> 标签内换行第一行?

3
我希望使用Christian Bach的tableSorter客户端表格排序jQuery插件与我的asp.Net GridView控件一起使用。但问题是,在文档中写道:tablesorter适用于标准HTML表格。您必须包括THEAD和TBODY标记。不幸的是,asp.net仅使用tbody标记呈现我的GridView,并且标题行保留在tbody作为第一行。我已经尝试过:
   dgvRate.HeaderRow.TableSection = TableRowSection.TableHeader;

调用 .DataBind() 后;

只是在标题中加入 <TH></TH> 有所帮助。但是所有内容仍然在 <tbody> 中。

我能做到这一点吗,我的意思是将第一行从 <tbody></tbody> 移动到 <thead></thead>

我不想在 PreRender 阶段手动添加它;我相信这可以更简单地处理,不是吗?

谢谢

1个回答

7
有时您需要为其提供一个可访问的类才能触发它,如下所示:
protected void Page_Load(object sender, EventArgs e) 
{
  dgvRate.UseAccessibleHeader = true;
  dgvRate.HeaderRow.TableSection = TableRowSection.TableHeader;
  dgvRate.HeaderRow.CssClass = "headerclass";
}

虽然在所有情况下保持一致的行为,我会选择使用PreRender路线


它不能与我的 gridView 一起工作。可能是因为我在代码后端动态创建了我的 GridView 列。(我已经在一个简单的 asp.net GridView 上尝试了您的建议,我确认那里可以工作) - pencilCake
@burak - 是的,动态调整列会触发很多事件,你是在最后一次操作列之后设置这个吗? - Nick Craver
1
太好了!我已经将它移动到 OnPrerender 中并且它起作用了。非常感谢! - pencilCake
感谢Nick的回答,它在某种程度上对我有帮助:在PostBack时,新表格没有生成thead和tfoot!!!有什么线索吗?有时我还会收到“表格必须按照标题、正文、页脚的顺序包含行节。”的提示... - billy
我找到了我的问题的答案:我把代码放在GridView的PreRender事件中(之前是放在页面的PreRender事件中)。 - billy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接