ItemDataBound fires for header only

Discussion in 'ASP .Net Datagrid Control' started by bkasmai@gmail.com, Jul 23, 2006.

  1. Guest

    This is driving me crazy. I need to hide rows that a particular cell is
    zero. On debuggng I fiound out that ItemDataBound fires for header only
    and not for Item and AlternatingItem
    private void grdSelectionList_ItemDataBound(object sender,
    System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
    ListItemType.AlternatingItem )
    {
    if (e.Item.Cells[2].Text == "0")
    {
    e.Item.Visible = false;
    }
    }

    Any help on this will be appreciated.
     
    , Jul 23, 2006
    #1
    1. Advertising

  2. Guest

    I now know the cause of this problem but not the solution. The column 2
    is a TemplateColumn populated with data but e.Item.Cells[2].Text
    returns empty string. All other cells which are databond return correct
    values. This seems to be a fundamental misunderstandig on my behalf.
    Any idea how can I solve this?

    wrote:
    > This is driving me crazy. I need to hide rows that a particular cell is
    > zero. On debuggng I fiound out that ItemDataBound fires for header only
    > and not for Item and AlternatingItem
    > private void grdSelectionList_ItemDataBound(object sender,
    > System.Web.UI.WebControls.DataGridItemEventArgs e)
    > {
    > if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
    > ListItemType.AlternatingItem )
    > {
    > if (e.Item.Cells[2].Text == "0")
    > {
    > e.Item.Visible = false;
    > }
    > }
    >
    > Any help on this will be appreciated.
     
    , Jul 23, 2006
    #2
    1. Advertising

  3. Guest

    Found the solution! For TemplateColumn the FindControl must be used:

    Label lbl = (Label)e.Item.Cells[2].FindControl("label_ID");
    if (lbl.Text == "0")
    {
    e.Item.Visible = false;
    }

    wrote:
    > I now know the cause of this problem but not the solution. The column 2
    > is a TemplateColumn populated with data but e.Item.Cells[2].Text
    > returns empty string. All other cells which are databond return correct
    > values. This seems to be a fundamental misunderstandig on my behalf.
    > Any idea how can I solve this?
    >
    > wrote:
    > > This is driving me crazy. I need to hide rows that a particular cell is
    > > zero. On debuggng I fiound out that ItemDataBound fires for header only
    > > and not for Item and AlternatingItem
    > > private void grdSelectionList_ItemDataBound(object sender,
    > > System.Web.UI.WebControls.DataGridItemEventArgs e)
    > > {
    > > if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
    > > ListItemType.AlternatingItem )
    > > {
    > > if (e.Item.Cells[2].Text == "0")
    > > {
    > > e.Item.Visible = false;
    > > }
    > > }
    > >
    > > Any help on this will be appreciated.
     
    , Jul 23, 2006
    #3
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. KJ
    Replies:
    0
    Views:
    2,323
  2. Replies:
    7
    Views:
    1,711
    Eliyahu Goldin
    Jul 23, 2006
  3. Replies:
    0
    Views:
    229
  4. ItemDataBound fires for header only

    , Jul 23, 2006, in forum: ASP .Net Web Controls
    Replies:
    6
    Views:
    173
    Alessandro Zifiglio
    Jul 23, 2006
  5. Replies:
    3
    Views:
    999
Loading...

Share This Page