Google 網路論壇不再支援新的 Usenet 貼文或訂閱項目,但過往內容仍可供查看。

PreRender checking value in textbox before making gridiview item visible

瀏覽次數:2 次
跳到第一則未讀訊息

jc

未讀,
2007年12月11日 下午1:40:152007/12/11
收件者:
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?

Eliyahu Goldin

未讀,
2007年12月12日 凌晨4:44:162007/12/12
收件者:
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


"jc" <jo...@webdos.com> wrote in message
news:b3e861a9-937d-4ebb...@f3g2000hsg.googlegroups.com...

jc

未讀,
2007年12月12日 清晨6:55:092007/12/12
收件者:
would anybody have an example of how I can loop through the grid and
change visibility of items after it's been built?

gnewsgroup

未讀,
2007年12月12日 上午8:30:592007/12/12
收件者:
On Dec 12, 6:55 am, jc <j...@webdos.com> wrote:
> 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;
}
}

0 則新訊息