Серверный тег не является правильно сформированной ошибкой в ​​мастере

Я получаю сообщение "Ошибка тега сервера неправильно сформирована". Пожалуйста, смотрите код ниже:

<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.

Долгая работа вокруг.:)

Другие вопросы по тегам