我有一个gridview,我想使用gridview的数据字段隐藏一些列。我的意思是 我通常使用GridView1.Columns [0] .Visible = false;它的工作原理。但对于大网格视图来说,它很复杂。有没有办法使用DataField进行asp.net gridview。下面是telerik radgrid的方法。
RadGrid.MasterTableView.GetColumn("ID").Visible = false; ("ID" --> datafield of grid)
答案 0 :(得分:1)
修改了更新的问题
在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);
}