Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Hide column names in gridview

Posted on 2011-03-25
12
Medium Priority
?
507 Views
Last Modified: 2012-05-11
I have Gridview where the first 4 columns are link buttons, next 6 columns come from the database and then I add 2 more columns to the datatable that is bound to the gridview.

I am trying to hide a couple of the columns from the db from the user but still need to access their values in the codebehind. I would perfer to hide these columns by name.

Thanks for the help.
0
Comment
Question by:DowntownIT
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 2
  • 2
  • +1
12 Comments
 
LVL 5

Expert Comment

by:bitref
ID: 35215762
You may get all data in a datatable then create a dataview to include required data onle. Set the dataviewas the data source for the grid.
0
 
LVL 2

Author Comment

by:DowntownIT
ID: 35216097
I don't see a way to remove or hide columns from the dataview. Is there a way?
0
 
LVL 7

Expert Comment

by:foobarr
ID: 35218545
Grid1.Columns("columnname").Visible = false
0
Learn Veeam advantages over legacy backup

Every day, more and more legacy backup customers switch to Veeam. Technologies designed for the client-server era cannot restore any IT service running in the hybrid cloud within seconds. Learn top Veeam advantages over legacy backup and get Veeam for the price of your renewal

 
LVL 2

Author Comment

by:DowntownIT
ID: 35218599
This doesn't work for me. When I supply the index of the column, I get an index out of range. Trying it with the name as suggested, I get a conversion from string to integer error.

0
 
LVL 5

Expert Comment

by:bitref
ID: 35218695
The index is zero-based. So, try to subtract 1 from the column order.
0
 
LVL 2

Author Comment

by:DowntownIT
ID: 35218726
I did do that, The grid in the designer only has 4 columns but then I add more columns from the server side through the datatable. It is these columns that I need access to. I am able to hide any of the first 4 with no problems.
0
 
LVL 31

Expert Comment

by:MlandaT
ID: 35294561
Hide the columns in the RowDataBound event for the grid.

        protected void GridViewResults_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            e.Row.Cells[0].Visible = false;
        }

Open in new window


Finding the column index might be a bit tricky, but you perhaps use something like this:

NumberOfFixedGridColumns + myTable.Columns.IndexOf(NameOfColumnToHide)

e.g.  e.Row.Cells[4 + myTable.Columns.IndexOf["ContractValue"]].Visible = false;

0
 
LVL 2

Author Comment

by:DowntownIT
ID: 35314476
MlandaT,

Looks like this is almost there, I am getting an index out of range error. Looks like maybe paging is causing an issue. When I step through the code, I don't get the error until to what it looks like to be the footer where the pages are at. Does this sound right?
0
 
LVL 31

Accepted Solution

by:
MlandaT earned 2000 total points
ID: 35314692
perhaps let's check to make sure that it is a DataRow like so...

        protected void GridViewResults_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if(e.Row.RowType == DataControlRowType.DataRow) 
            {
                   e.Row.Cells[0].Visible = false;
            }
        }

Open in new window

0
 
LVL 2

Author Closing Comment

by:DowntownIT
ID: 35315041
That worked except that I changed it to look for the DataControlRowType.Pager row.

Thanks for the help!
0

Featured Post

How To Reduce Deployment Times With Pre-Baked AMIs

Even if we can't include all the files in the base image, we can sometimes include some of the larger files that we would otherwise have to download, and we can also sometimes remove the most time-consuming steps. This can help a lot with reducing deployment times.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The article shows the basic steps of integrating an HTML theme template into an ASP.NET MVC project
Make the most of your online learning experience.
With the power of JIRA, there's an unlimited number of ways you can customize it, use it and benefit from it. With that in mind, there's bound to be things that I wasn't able to cover in this course. With this summary we'll look at some places to go…
Six Sigma Control Plans

722 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question