Использование Container.DataItem с оператором If в пределах <%%> - PullRequest
3 голосов
/ 29 апреля 2010

У меня есть следующий код на странице c # aspx:

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

Этот код вызывает следующую ошибку.

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

Почему это так и как я могу сделать условное утверждение, которое использует Container.DataItem? Container.DataItem отлично работает при использовании в <%# %>, однако помещение оператора if в <%# %> вызывает следующую ошибку:

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

1 Ответ

3 голосов
/ 29 апреля 2010

Вы могли бы иметь что-то вроде этого


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

или


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

EDIT Добавил Равные к решению

...