Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   ASP .Net (http://www.velocityreviews.com/forums/f29-asp-net.html)
-   -   Make one cell in gridview invisible? (http://www.velocityreviews.com/forums/t123209-make-one-cell-in-gridview-invisible.html)

Jo 04-06-2006 04:24 PM

Make one cell in gridview invisible?
 
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


sirfunusa 04-06-2006 04:50 PM

Re: Make one cell in gridview invisible?
 
I believe you want the grid.ItemDataBound event


Jo 04-06-2006 07:34 PM

Re: Make one cell in gridview invisible?
 
Hi,
Maybe I do, but what should I do within this event?

Regards,
Jo


sirfunusa 04-06-2006 07:51 PM

Re: Make one cell in gridview invisible?
 

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


Jo 04-07-2006 07:49 AM

Re: Make one cell in gridview invisible?
 
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


Jan Hyde 04-07-2006 08:41 AM

Re: Make one cell in gridview invisible?
 
"Jo" <jolanda.busscher@organon.com>'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)


Jo 04-07-2006 09:30 AM

Re: Make one cell in gridview invisible?
 
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


Jan Hyde 04-07-2006 12:30 PM

Re: Make one cell in gridview invisible?
 
"Jo" <jolanda.busscher@organon.com>'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)


Jo 04-07-2006 01:55 PM

Re: Make one cell in gridview invisible?
 
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!
}
}
}


Jo 04-07-2006 02:46 PM

Re: Make one cell in gridview invisible?
 
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



All times are GMT. The time now is 12:28 AM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.