0

Using the obout grid with the following column:

<obg:Column ID="Image" DataField="" HeaderText="" Width="50" runat="server">
   <TemplateSettings TemplateId="ImageTemplate" />
</obg:Column>

And the following Template:

<Templates>
  <obg:GridTemplate runat="server" ID="ImageTemplate">
    <Template>
      <img src="images/test.png" title="test" />
    </Template>
  </obg:GridTemplate>
</Templates>

I am trying to hide the image on certain rows programmatically:

protected void grd_RowDataBound(object sender, GridRowEventArgs e)
{
    if (testpassed())
    {
        e.Row.Cells[1].Text = "";  // Column 2 is the image
    }
}

But it is not hiding the image. How do I hide the image programmatically using an obout grid for certain rows only? Thanks before hand.

Robert Smith
  • 634
  • 1
  • 8
  • 22

1 Answers1

0

If found the answer in case someone runs into this in the future:

protected void grd_RowDataBound(object sender, GridRowEventArgs e)
{
  // Check if this is a DataRow
  if (e.Row.RowType == GridRowType.DataRow)
  {
    // Check if we are hiding the image
    if (testpassed())
    {            
      // Retrieve Image Cell (Column 2 in my case)
      GridDataControlFieldCell cell = e.Row.Cells[1] as GridDataControlFieldCell;

      // Retrieve Literal Control with Image Source Html (Found at Level 5)
      LiteralControl imgTag = cell.Controls[0].Controls[0].Controls[0].Controls[0].Controls[0] as LiteralControl;

      // Remove Html <img src.. code from Literal Control in order to hide image
      imgTag.Text = "";
    }
  }
}
Robert Smith
  • 634
  • 1
  • 8
  • 22