William Calleja
William Calleja

Reputation: 4175

Using Container.DataItem with an If statement within <% %>

I have the following code in a c# aspx page:

<ItemTemplate>
    <a <% if(((Dictionary<string, string>)Container.DataItem)["type"]==Session["type"]){%> class="active"<%}%>

This code is causing the following error.

Compiler Error Message: CS0117: 'System.ComponentModel.Container' does not contain a definition for 'DataItem'

Why is that and how can I make a conditional statement that uses the Container.DataItem? Container.DataItem works perfectly when used within a <%# %> however putting the if statement within the <%# %> causes the following error:

Compiler Error Message: CS1518: Expected class, delegate, enum, interface, or struct

Upvotes: 3

Views: 4768

Answers (1)

Claudio Redi
Claudio Redi

Reputation: 68400

You could have something like this


<ItemTemplate>
<%# ((Dictionary<string, string>)Container.DataItem)["type"].Equals(Session["type"]) ? 
"<a class='active'>mylink</a>" : 
"<a>mylink</a>" %>

or


<ItemTemplate>
<a class='<%# ((Dictionary<string, string>)Container.DataItem)["type"].Equals(Session["type"]) ? 
"active" : string.Empty" %>'>my link </a>

EDIT Added the Equals to the solution

Upvotes: 4

Related Questions