Серверный тег не является правильно сформированной ошибкой в мастере
Я получаю сообщение "Ошибка тега сервера неправильно сформирована". Пожалуйста, смотрите код ниже:
<ul id="wizHeader">
<asp:Repeater ID="SideBarList" runat="server">
<ItemTemplate>
<li>
<asp:LinkButton runat="server" CssClass="<%# GetClassForWizardStep(Container.DataItem) %>" Font-Bold="true" ID="SideBarButton" OnClick="Step_Click" Text="<%# Eval("Name") %>" ToolTip="<%# Eval(ID) %>"></asp:LinkButton>
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
2 ответа
Вы не можете использовать <% # внутри атрибута серверных элементов управления.
Поэтому, если вы хотите использовать LinkButton внутри Repeater, вам необходимо связать атрибуты в выделенном фрагменте кода с помощью события Repeater.ItemDataBound.
Пример из MSDN: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeater.itemdatabound(v=vs.110).aspx
В качестве альтернативы вы можете использовать простой тег привязки и применить к нему все привязки. И сделайте так, чтобы он вызывал ту же обратную передачу, что и ваша кнопка. Пример:
<a onClick="javascript:__doPostBack('<%= SideBarButton.UniqueID %>')" class="<%# GetClassForWizardStep(Container.DataItem) %>"> <%# Eval("Name") %></a>
После этого вам нужно будет скрыть кнопку ссылки, установив ее свойство css display none.
Долгая работа вокруг.:)