I have a gridview and I wanna hide some columns using gridview's datafield. I mean I use normally GridView1.Columns[0].Visible = false; and it works. But for big gridviews it's complicated. Is there a way to do it using DataField for a asp.net gridview. There is a way for telerik radgrid below.
RadGrid.MasterTableView.GetColumn("ID").Visible = false; ("ID" --> datafield of grid)
Edited for updated question
In 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;
}
Then use that helper function to set your visibility:
int column = GetColumnIndexByName(GridView1, "ID")
if ( column != -1 )
{
GridView1.Columns[0].Visible = false
}
Source: https://stackoverflow.com/a/3925334/1674958
In Telerik RadGrid
Server-side:
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();
}
Source: http://www.telerik.com/community/forums/aspnet-ajax/grid/how-to-hide-columns-in-radgrid.aspx
Client-side:
<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);
}
Source: http://www.telerik.com/community/forums/aspnet-ajax/chart/how-can-i-hide-unhide-columns-in-rad-grid.aspx
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With