PreRender checking value in textbox before making gridiview itemvisible

J

jc

Hello.

I have a gridview column item that i want to not make visible if the
bound data in that cell is less than a value in a textbox.

However, I notice at the time my code checks a function that I call
from the visible property of the gridview itemtemplate, the textbox is
always blank.

I tried setting the textbox in the prerender, but I suspect the
gridview is built much earlier in another event.. like items created.

Whats the best way to attack this?

Also, and a question I can't believe I'm asking.. what's the preferred
way to store information in a codebehind variable so that's a
available across all subs, functions and events? For example, if I
want to have something in a variable I set in the prerender, how do I
make that available in Page load sub?
 
E

Eliyahu Goldin

PreRender is the right place for this. At this stage the grid has already
been fully built, which is your advantage rather than a disadvantage since
no-one will intervene in the final changes you are making there.

PreRender event fires after Load, so it won't help if you set something in
PreRender. Otherwise, if you just declare a field or a property in your page
class it will be visible by all other members.

--
Eliyahu Goldin,
Software Developer
Microsoft MVP [ASP.NET]
http://msmvps.com/blogs/egoldin
http://usableasp.net
 
J

jc

would anybody have an example of how I can loop through the grid and
change visibility of items after it's been built?
 
G

gnewsgroup

would anybody have an example of how I can loop through the grid and
change visibility of items after it's been built?

Sounds like you can use a RowDataBound event handler like so (very
sketchy code, but you get the idea.)

protected void MyGridView_RowDataBound(object s,
GridViewRowEventArgs e)
{
// Hide the header of the leftmost column.
if (e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[0].Visible = false;
}

// Hide the leftmost column of the data row.
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[0].Visible = false;
}
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,820
Latest member
GilbertoA5

Latest Threads

Top