Solved

hide data grid column

Posted on 2004-09-18
17
360 Views
Last Modified: 2010-05-18

I am programming using asp.net and vb.net .I am populating a datagrid from from data set and i would like to hide a column in the datagrid..How do i do that

0
Comment
Question by:sony1464
[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
  • 4
  • 3
  • 3
  • +3
17 Comments
 
LVL 7

Expert Comment

by:jackiechen858
ID: 12091407
that's easy. just set the column's visible = false.
0
 
LVL 3

Author Comment

by:sony1464
ID: 12091526
nope that does not work...

i tried binding the datagrid to the dataset and then datagrid1.column(2).visible=false.  It says that the column value is out of range. i don't know why...when the datagrid come up on the screen it shows up 5 colums...
0
 
LVL 7

Expert Comment

by:jackiechen858
ID: 12091557
should be datagrid1.Columns(2).Visible = False.   Column start from 0.

Weird. I always use it. Could you paste some test code here ?
0
Create CentOS 7 Newton Packstack Running Keystone

A bug was filed against RDO for the installation of Keystone v3. This guide is designed to walk you through the configuration for using Keystone v3 with Packstack. You will accomplish this using various repos and the Answers file.

 
LVL 7

Expert Comment

by:jackiechen858
ID: 12091564
maybe you set the columns not in the aspx page, but in the aspx.vb code? like datagrid1.Columns.add()... . Then you need to put datagrid1.Columns(2).Visible = False after the Columns.Add() line.
0
 
LVL 70

Expert Comment

by:Éric Moreau
ID: 12091618
0
 
LVL 3

Author Comment

by:sony1464
ID: 12091691
       ds1 = objconn.getdataset(strsql)
        'ds1.Tables(0).Columns("PRSN_ID").ColumnMapping = MappingType.Hidden
        ds1.Tables(0).Columns(0).ColumnName = " INDEX"
        ds1.Tables(0).Columns(1).ColumnName = "ITEM NO."
        ds1.Tables(0).Columns(2).ColumnName = "PERSON INDEX"
        ds1.Tables(0).Columns(3).ColumnName = "POSITION"
        ds1.Tables(0).Columns(4).ColumnName = "LAST NAME"
        ds1.Tables(0).Columns(5).ColumnName = "FIRST NAME"
        DataGrid1.DataSource = ds1
        DataGrid1.DataBind()
        DataGrid1.Columns(2).Visible =  false

Jackiechen858- this is the code i am presently trying.

emoreaU- As suggested in the article, i wrote that line of code as shown in the commented line above. that did not hide the column too...


0
 
LVL 70

Expert Comment

by:Éric Moreau
ID: 12091698
have you tried:
ds1.Tables(0).Columns(0).ColumnMapping = MappingType.Hidden

You can also try to set the width to 0 (as suggested in the same link)
0
 
LVL 7

Expert Comment

by:J_Mak
ID: 12091792
Here's how it should be done:

dgrid.TableStyles("Name of your table").GridColumnStyles("Name of the column").Width = 0

You can also find great examples of other different but neat tricks you can do to your datagrid in this link:

http://www.syncfusion.com/FAQ/WinForms/FAQ_c44c.asp#Top

It's pretty cool. I've used it everywhere in my software and it's extremely useful.

Hope that helps!
0
 
LVL 7

Expert Comment

by:jackiechen858
ID: 12093396
your code only show the datatable has 6 columns, didn't tell us how many columns in the datagrid. could you paste your datagrid1 definition in the aspx file?

you can set a breakpoint in DataGrid1.DataBind(), and check the
datagrid1.Columns.Count value. I am sure  DataGrid1.Columns(2).Visible =  false will work because I have used it a lot.
0
 
LVL 10

Expert Comment

by:EBatista
ID: 12101099
do it in the html tab (aspx file):

<asp:BoundColumn DataField="PERSON INDEX" HeaderText="PERSON INDEX" Visible="False"></asp:BoundColumn>

regards
0
 
LVL 3

Author Comment

by:sony1464
ID: 12278209
Hello all,

            i am still having this problem. i have tried a lot of thins and nothing works as i wish. I have pasted the datagrid definition below.
           

<asp:datagrid id="DataGrid1" runat="server" Width="735px" BackColor="#D8E4F8" Height="138px" Font-Size="Smaller" BorderColor="Black" BorderStyle="Solid" OnEditCommand="edit_Row" OnDeleteCommand="Delete_Row" AllowPaging="True" PageSize="5">
 
   <AlternatingItemStyle BackColor="#D8E4F8"></AlternatingItemStyle>
<HeaderStyle Font-Size="Smaller" Font-Names="Verdana" Font-Bold="True" ForeColor="White" BackColor="#003399"></HeaderStyle>
<Columns>
 <asp:TemplateColumn>
    <ItemTemplate>
        <asp:Button id="btnEdit" runat="server" Font-Size="X-Small" Height="19px" Text="Edit" CommandName="Edit"></asp:Button>
   </ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
      <ItemTemplate>
           <asp:Button id="btnDelete" runat="server" Height="19px" Font-Size="X-Small" Text="Delete" CommandName="Delete"></asp:Button>
       </ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle Mode="NumericPages"></PagerStyle>
</asp:datagrid></TD>


1) ds1.Tables(0).Columns(VEHICLE INDEX).ColumnMapping = MappingType.Hidden

This did not gide any of the columns

2) for setting the width=0 i have to include datagrid table style. what namespace is it under. can it be included un web forms.


3)I tried the following setting autogenerated column =true then it hides the columns i want to but also duplicate columns with all the columns visible. that means if  my dataset has 6 columns and i want show 4 and hide 2. it correctly shows the four but it also displays another 6 columns. Then i triend autogenerated column =false. here it displays 4 columns out of 6. exactly the way i want. but  when i try to edit the entries...the invisible commn is not recognized as one of the columns.

         ds1.Tables(0).Columns(0).ColumnName = "VEHICLE INDEX"
        ds1.Tables(0).Columns(1).ColumnName = "ITEM NO."
        ds1.Tables(0).Columns(2).ColumnName = "PERSON INDEX"
        ds1.Tables(0).Columns(3).ColumnName = "POSITION"
        ds1.Tables(0).Columns(4).ColumnName = "LAST NAME"
        ds1.Tables(0).Columns(5).ColumnName = "FIRST NAME"
        Dim value As String = ds1.Tables(0).Columns(2).ColumnName

        Dim i As Integer
        For i = 0 To ds1.Tables(0).Columns.Count - 1
            Dim objbc As New BoundColumn
            objbc.DataField = ds1.Tables(0).Columns(i).ColumnName
            objbc.HeaderText = ds1.Tables(0).Columns(i).ColumnName
            If objbc.DataField = ds1.Tables(0).Columns("VEHICLE INDEX").ColumnName Or objbc.DataField = ds1.Tables(0).Columns("PERSON INDEX").ColumnName Then
                objbc.Visible = False
            End If
            DataGrid1.Columns.Add(objbc)
        Next

        DataGrid1.DataSource = ds1.Tables(0)
        DataGrid1.DataBind()

Please help me get this working.

Thank you

0
 
LVL 10

Accepted Solution

by:
EBatista earned 100 total points
ID: 12288500
the easiest way is define the datagrig columns in the html code and set the desired column as not visible:
(with autogenerated column set to false)

<asp:BoundColumn DataField="PERSON INDEX" HeaderText="PERSON INDEX" Visible="False"></asp:BoundColumn>

regards
0
 
LVL 10

Expert Comment

by:EBatista
ID: 12500562
sony dont reply to my last post, dont know how is going
0

Featured Post

SharePoint Admin?

Enable Your Employees To Focus On The Core With Intuitive Onscreen Guidance That is With You At The Moment of Need.

Question has a verified solution.

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

More often than not, we developers are confronted with a need: a need to make some kind of magic happen via code. Whether it is for a client, for the boss, or for our own personal projects, the need must be satisfied. Most of the time, the Framework…
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
If you’ve ever visited a web page and noticed a cool font that you really liked the look of, but couldn’t figure out which font it was so that you could use it for your own work, then this video is for you! In this Micro Tutorial, you'll learn yo…
Add bar graphs to Access queries using Unicode block characters. Graphs appear on every record in the color you want. Give life to numbers. Hopes this gives you ideas on visualizing your data in new ways ~ Create a calculated field in a query: …

623 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