Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > Make one cell in gridview invisible?

Reply
Thread Tools

Make one cell in gridview invisible?

 
 
Jo
Guest
Posts: n/a
 
      04-06-2006
Hi all,

I have a gridview displaying a dataset and some buttons. When a certain
cell of this datasetrow is empty, I want a button in that row to be
visible, otherwise no button should be shown in that row.

I'm trying to make this work all day, but it's not going to work.

I tried this in the rowCreated event. I am able to find the right row
and cell in this row (as a datarow), but now the right gridview
row-cell should be made visible.

This is what I have right now (C#):

protected void supplierFilesGrid_RowCreated(object sender,
GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DataRowView drView = (DataRowView)e.Row.DataItem;
DataRow drRow = drView.Row;

if (drRow[2].ToString() == "NEW")
{
int i = e.Row.RowIndex; //
this works fine, after this I get an error:
//grid.Rows[i].Cells[1].Visible = false; //
argumentOutOfRangeException...
(sender as GridView).Rows[i].Cells[1].Visible =
false;
}
}
}

Has anyone a suggestion how to make this work?

Thanks in advance!

Regards,
Jo

 
Reply With Quote
 
 
 
 
sirfunusa
Guest
Posts: n/a
 
      04-06-2006
I believe you want the grid.ItemDataBound event

 
Reply With Quote
 
 
 
 
Jo
Guest
Posts: n/a
 
      04-06-2006
Hi,
Maybe I do, but what should I do within this event?

Regards,
Jo

 
Reply With Quote
 
sirfunusa
Guest
Posts: n/a
 
      04-06-2006

Here is a snippet of code I have in this event to get you started.

e.Item.Cells.Item(4).ToolTip = e.Item.Cells.Item(5).Text

 
Reply With Quote
 
Jo
Guest
Posts: n/a
 
      04-07-2006
Hi,
Thanks for your quick reply! You gave me the right hint to continue
this 'problem'.

A gridview doesn't have an ItemDataBound event, I used the RowDataBound
event and it works! But not completely as hoped: the data/buttons in
the columns behind the 'Invisible' column move 1 column to the left,
filling the space of the 'invisible' column. That's not what I need,
this column should be left empty, 'not replaced'...
That's the only issue left now. Any solution to that?

protected void grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DataRowView drView = (DataRowView)e.Row.DataItem;
DataRow drRow = drView.Row;

if (drRow[6].ToString() != "")
{
int i = e.Row.RowIndex;
e.Row.Cells[7].Visible = false;
}
}
}

Regards,
Jo

 
Reply With Quote
 
Jan Hyde
Guest
Posts: n/a
 
      04-07-2006
"Jo" <(E-Mail Removed)>'s wild thoughts were
released on 7 Apr 2006 00:49:27 -0700 bearing the following
fruit:

>Hi,
>Thanks for your quick reply! You gave me the right hint to continue
>this 'problem'.
>
>A gridview doesn't have an ItemDataBound event, I used the RowDataBound
>event and it works! But not completely as hoped: the data/buttons in
>the columns behind the 'Invisible' column move 1 column to the left,
>filling the space of the 'invisible' column. That's not what I need,
>this column should be left empty, 'not replaced'...
>That's the only issue left now. Any solution to that?


You don't want to remove the cell, only it's contents.

J

>protected void grid_RowDataBound(object sender, GridViewRowEventArgs e)
> {
> if (e.Row.RowType == DataControlRowType.DataRow)
> {
> DataRowView drView = (DataRowView)e.Row.DataItem;
> DataRow drRow = drView.Row;
>
> if (drRow[6].ToString() != "")
> {
> int i = e.Row.RowIndex;
> e.Row.Cells[7].Visible = false;
> }
> }
> }
>
>Regards,
>Jo



Jan Hyde (VB MVP)

--
Divorce: Going through a change of wife. (Henny Youngman)

 
Reply With Quote
 
Jo
Guest
Posts: n/a
 
      04-07-2006
Hi,

>
>You don't want to remove the cell, only it's contents.
>


I thought I wasn't removing anything, just hiding
("e.Row.Cells[7].Visible = false"),
still the content of remaining cells in that row is taking the place of
the content of the 'invisible' cell.

So, maybe you can be more clear about this?

Thank you!
Jo

 
Reply With Quote
 
Jan Hyde
Guest
Posts: n/a
 
      04-07-2006
"Jo" <(E-Mail Removed)>'s wild thoughts were
released on 7 Apr 2006 02:30:49 -0700 bearing the following
fruit:

>Hi,
>
>>
>>You don't want to remove the cell, only it's contents.
>>

>
>I thought I wasn't removing anything, just hiding
>("e.Row.Cells[7].Visible = false"),
>still the content of remaining cells in that row is taking the place of
>the content of the 'invisible' cell.
>
>So, maybe you can be more clear about this?
>


'I want a button in that row to be visible, otherwise no
button should be shown in that row'

So change the visible propery of the button to false.



Jan Hyde (VB MVP)

--
Could you say that a cannibalistic lion might swallow his pride?
(Ken Shurget)

 
Reply With Quote
 
Jo
Guest
Posts: n/a
 
      04-07-2006
Hi,

>
>So change the visible propery of the button to false.
>


First, I didn't know how to do that, but I've tried this code (see
below), and I got an ArgumentOutOfRangeException!
I guess that the row which gives the GridViewRowEventArgs haven't been
created in the GridView at that time, the row before this one does exit
in de Gridview, the current one not...
Maybe I have to try to do this in the rowcreated_event???

protected void grid_RowDataBound(object sender, GridViewRowEventArgs e)

{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DataRowView drView = (DataRowView)e.Row.DataItem;
DataRow drRow = drView.Row;

if (drRow[6].ToString() != "")
{
int i = e.Row.RowIndex;
//e.Row.Cells[7].Visible = false; REPLACED BY:
grid.Rows[i].Controls[7].Visible = false; ////////
Gives an ArgumentOutOfRangeException!
}
}
}

 
Reply With Quote
 
Jo
Guest
Posts: n/a
 
      04-07-2006
I got the same problem in the rowcreated_event...

And tried "e.Row.Cells.RemoveAt(7);" in stead of
"e.Row.Cells[7].Visible = false", but that gives (visually) the same
results
That's something I can't explain: removing and making invisible isn't
the same!

I'm going of to enjoy my weekend. Hopefully someone can give me a
straight answer and a solution to my 'problem'.

Enjoy!
Jo

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
GridView - how to make a cell uneditable? Steve Kershaw ASP .Net 4 09-20-2007 08:23 PM
Gridview - Pull value from one cell in one row pvong ASP .Net Datagrid Control 1 08-06-2007 03:24 AM
Gridview - Pull value from one cell in one row pvong ASP .Net 4 08-05-2007 06:47 PM
GridView Hierarchical View - Gridview in Gridview =?Utf-8?B?bWdvbnphbGVzMw==?= ASP .Net 1 05-09-2006 06:48 PM
multilink cell phones multilinking shotgun 2 cell phones Calvin Cisco 1 11-07-2003 02:20 PM



Advertisments