首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GridView -使用CSS友好的控制适配器移除EmptyDataTemplate和EmptyDataText

GridView -使用CSS友好的控制适配器移除EmptyDataTemplate和EmptyDataText
EN

Stack Overflow用户
提问于 2010-10-04 15:54:10
回答 3查看 2.7K关注 0票数 5

正如问题中所指出的:

其中一种解决方案是禁用GridView组件的地址器(如这个答案中指定的)。

是否有一种解决方案,允许将CSS友好控制适配器用于GridView并仍然利用EmptyDataTemplate功能?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-28 21:43:58

从源代码构建the友好,而不是使用下载链接。目前,最新的是http://cssfriendly.codeplex.com/SourceControl/changeset/changes/24242和EmptyDataText在我使用该源代码时运行良好。

票数 5
EN

Stack Overflow用户

发布于 2010-10-05 02:36:40

如果您查看链接中提供的CSS友好的GridView适配器的源代码,您将看到以下内容(注意缺少的else):

代码语言:javascript
复制
private void WriteRows(HtmlTextWriter writer, GridView gridView, GridViewRowCollection rows, string tableSection)
{
    if (rows.Count > 0)
    {

基本上,适配器没有提到EmptyDataTemplateEmptyDataText --这是一个简单的疏忽。不过,修补它是很简单的。您所要做的就是获取所提供的源代码,查看原始GridView如何呈现它,合并概念,并重新构建原始适配器:

代码语言:javascript
复制
case DataControlRowType.EmptyDataRow:
                if (this._emptyDataTemplate == null)
                {
                    container = new TableCell();
                    string emptyDataText = this.EmptyDataText;
                    if (emptyDataText.Length > 0)
                    {
                        container.Text = emptyDataText;
                    }
                    break;
                }
                container = new TableCell();
                template = this._emptyDataTemplate;
                break;
        }
        if (container != null)
        {
            if (columnSpan > 1)
            {
                container.ColumnSpan = columnSpan;
            }
            if (template != null)
            {
                template.InstantiateIn(container);
            }
            row.Cells.Add(container);
        }
票数 3
EN

Stack Overflow用户

发布于 2010-10-21 02:01:06

在/ RenderContents /节/之前,在RenderContents中的GridViewAdapter.cs中添加以下内容

代码语言:javascript
复制
if (gridView.Rows.Count == 0) {
    //Control[0].Control[0] s/b the EmptyDataTemplate.
    if (gridView.HasControls()) {
        if (gridView.Controls[0].HasControls()) {
            if (gridView.Controls[0].Controls[0] is GridViewRow) {
                rows.Clear();
                rows.Add(gridView.Controls[0].Controls[0]);
                gvrc = new GridViewRowCollection(rows);
                WriteRows(writer, gridView, gvrc, "tfoot");
            }
        }
    }
}   

并在返回GetRowClass ()之前将以下内容添加到className.Trim();

代码语言:javascript
复制
//// EmptyDataTemplate 
if ((row.RowType & DataControlRowType.EmptyDataRow) == DataControlRowType.EmptyDataRow) {
className += " AspNet-GridView-Empty ";
}

最后,如果您想要覆盖标准的the样式,请添加一个CSS部分。

代码语言:javascript
复制
.AspNet-GridView table tfoot tr.AspNet-GridView-Empty td
{

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3856890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档