c# - 如果所有行数据为空隐藏列

标签 c# asp.net foreach telerik radgrid

使用 MS Visual Studio 2012、Telerik、C#.ASP.NET。

我需要的逻辑如下:

If a columns data on all rows is null then hide the column

基本上,如果一列有 3 行数据,如果全部为 null,则不必显示该列,但是如果其中 1 行中有值,则显示该列。

一直在玩:

foreach (GridColumn columns in dgvUserResults.Columns)
{
    if (columns != null)
    {
        columns.Visible = false;
    }
    else
    {
        columns.Visible = true;
    }
}

代码当然不起作用,不会迭代 foreach 循环,只是跳过它。尽管不关心这一点,即使它确实进行了迭代,但我需要一种方法来检查所有列[name]行是否为空。有一款不错的 Telerik one liner 吗?

最佳答案

请尝试使用以下代码片段。

使用唯一名称

protected void RadGrid1_PreRender(object sender, EventArgs e)
{
    foreach (GridColumn column in RadGrid1.MasterTableView.Columns)
    {
        // If you used ClientSelectColumn then below code is not worked For that you have to put condition
        //if(column.ColumnType  == "GridBoundColumn")

        int TotalNullRecords = (from item in RadGrid1.MasterTableView.Items.Cast<GridDataItem>()
                                where string.IsNullOrWhiteSpace(item[column.UniqueName].Text) ||
                                item[column.UniqueName].Text == "&nbsp;"
                                select item).ToList().Count;

        if (TotalNullRecords == RadGrid1.MasterTableView.Items.Count)
        {
            RadGrid1.MasterTableView.Columns.FindByUniqueName(column.UniqueName).Visible = false;
        }
    }
}

通过使用索引

protected void RadGrid1_PreRender(object sender, EventArgs e)
{


    foreach (GridColumn column in RadGrid1.MasterTableView.Columns)
    {
        // If you used ClientSelectColumn then below code is not worked For that you have to put condition
        //if(column.ColumnType  == "GridBoundColumn")

        int TotalNullRecords = (from item in RadGrid1.MasterTableView.Items.Cast<GridDataItem>()
                                where string.IsNullOrWhiteSpace(item[column.UniqueName].Text) ||
                                item[column.UniqueName].Text == "&nbsp;"
                                select item).ToList().Count;

        if (TotalNullRecords == RadGrid1.MasterTableView.Items.Count)
        {
            column.Visible = false;
        }


    }
}

关于c# - 如果所有行数据为空隐藏列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17447191/

相关文章:

c# - 在运行时向现有的 c# 类添加属性

c# - 使用 SqlBulkCopy 为每个插入的行触发触发器

c# - 使用 ObjectDataSource 从 Gridview 中删除记录

php - 在迭代中途在 foreach 中执行更改代码

c# - 具有多个 DictionaryEntry 的 foreach

c# - 总结 Double ReadLine 值?

c# - 如何获得特定的文化货币图案

c# - 如何从枚举中获取字符串值

asp.net - 如何在asp.net中使用ocx控件

javascript - 如何使用 Array.from 和 forEach 从多个表单字段值中获取值