conditionally show hide asp.net Gridview column
You can use gridview pre-render method to set this...
protected void GridView_PreRender(object sender, EventArgs e)
{
if(Reqest.QueryString["Id"]=="all"&& Reqest.QueryString["Id"]!=null)
{
GridViewId.Columns[1].Visible = true;
}
else
GridViewId.Columns[1].Visible = false;
}
you can use gridview column index to hide the particular column
Code could be
if(Request.QueryString.Get("show")=="all")
GridView1.Columns[1].Visible=true;
else
GridView1.Columns[1].Visible=false;
More detail
GridView Hide Column by code
Edit 3
Settings in ASPX/ASCX can not be done directly.
<%= %> outputs directly to the response stream, and the asp markup is not part of the response stream. Its a mistake to assume the <%= %> operators are performing any kind of preprocessing on the asp markup.
More explanation
Why will <%= %> expressions as property values on a server-controls lead to a compile errors?
Edit 1
I think yes
<asp:BoundField HeaderText="ColumnTwo"
Visible='<% if (Request.QueryString.Get("all") == "all" ) "true" else "false" %>'/>
You will have to check for the syntex
Edit 2
Try this
Visible='<% Request.QueryString.Get("all") == "all"? "true": "false"%>'
Dear try to use RowDataBound event of Grid View like
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//here apply your condition
if(Request.QueryString["name"] == "all")
e.Row.Cells[<index_of_cell>].Visible = true;
else
e.Row.Cells[<index_of_cell>].Visible = false;
}
}
Try something like that.
Hope it works for you.