3

我有一个gridview,我想使用gridview 的数据字段隐藏一些列。我的意思是我通常使用 GridView1.Columns[0].Visible = false; 它有效。但是对于大网格视图来说,它很复杂。有没有办法将 DataField 用于 asp.net gridview。下面有一种telerik radgrid的方法。

RadGrid.MasterTableView.GetColumn("ID").Visible = false; ("ID" --> datafield of grid)
4

1 回答 1

2

编辑更新的问题

在 ASP.NET GridView 中:

private int GetColumnIndexByName(GridView grid, string name)
{
    foreach (DataControlField col in grid.Columns)
    {
        if (col.HeaderText.ToLower().Trim() == name.ToLower().Trim())
        {
            return grid.Columns.IndexOf(col);
        }
    }

    return -1;
}

然后使用该辅助函数来设置您的可见性:

int column = GetColumnIndexByName(GridView1, "ID")
if ( column != -1 )
{
    GridView1.Columns[0].Visible = false
}

来源:https ://stackoverflow.com/a/3925334/1674958

在 Telerik RadGrid

服务器端:

protected void gvCktMap_PreRender(object sender, EventArgs e) 
{ 
    gvCktMap.MasterTableView.GetColumn("sid").Visible = false;  
    gvCktMap.MasterTableView.GetColumn("customername").Visible = false; 
    gvCktMap.MasterTableView.GetColumn("marketname").Visible = false; 
    gvCktMap.Rebind(); 
} 

资料来源:http ://www.telerik.com/community/forums/aspnet-ajax/grid/how-to-hide-columns-in-radgrid.aspx

客户端:

<script type="text/javascript" language="javascript"> 
function Button1_Click() 
{ 
    var radGrid = $find('<%= RadGrid1.ClientID %>'); 
    var table = radGrid.get_masterTableView(); 
    var column = table.getColumnByUniqueName("cbDiscontinued"); 
    table.hideColumn(column.get_element().cellIndex); 
} 

资料来源:http ://www.telerik.com/community/forums/aspnet-ajax/chart/how-can-i-hide-unhide-columns-in-rad-grid.aspx

于 2013-11-04T19:32:47.640 回答