Reputation:

gridview dynamic image change in imagebutton

I have a gridview containing some data from db, and after a check I want to see a small cross/tick image in each row, due to the result of the check.How can I change the image url dynamically?

Upvotes: 1

Views: 6067

Answers (3)

Beytan Kurt
Beytan Kurt

Reputation: 2263

in form:

<Columns>
    <asp:TemplateField>
        <ItemTemplate>
            <asp:ImageButton ID="check" runat="server" ImageUrl='<%# GetImageUrl(Eval("Check")) %>' />
        </ItemTemplate>
    </asp:TemplateField>
</Columns>

code-behind:

public string GetImageUrl(object checkObject)
{
     if (checkObject!= null)
     {
          bool check;
          bool parsable = bool.Parse(checkObject.ToString(), out check);
          check= parsable ? check : false;

          return check ? "~/Media/Images/tick.png" : "~/Media/Images/untick.png";
     }

     return "~/Media/Images/none.png";
}

Upvotes: 0

Chinjoo
Chinjoo

Reputation: 2792

You could either use inline statement like
<%#Eval("check").ToString() == "1" ? "images/checked.gif" : "images/unchceked.gif")%>

or use a function to get the result as follows:

<%# getImageUrl(Eval("value")) %>
Public Function getImageUrl(ByVal value As Integer) As String
   If value = 0 Then
      Return "images/unchceked.gif"
   Else
      Return "mages/checked.gif"
   End If
End Function

Upvotes: 2

gfrizzle
gfrizzle

Reputation: 12609

<Columns>
    <asp:TemplateField>
        <ItemTemplate>
            <asp:Image ID="check" runat="server" ImageUrl='<%#If(Eval("check") = 1,"images/checked.gif","images/unchceked.gif") %>' />
        </ItemTemplate>
    </asp:TemplateField>
</Columns>

Upvotes: 0

Related Questions