向导中的Server标记格式不正确

时间:2013-11-26 17:24:00

标签: c# asp.net servertag

我收到“服务器标签没有格式错误”。请参阅以下代码:

<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 个答案:

答案 0 :(得分:3)

您不能在服务器控件属性中使用&lt;%#。

因此,如果要在Repeater内部使用LinkBut​​ton,则必须使用Repeater.ItemDataBound事件绑定代码隐藏中的属性。

来自MSDN的示例:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeater.itemdatabound(v=vs.110).aspx

答案 1 :(得分:0)

或者,您可以使用简单的锚标记并对其应用所有绑定。并使其与您的按钮进行相同的回发。例如:

   <a onClick="javascript:__doPostBack('<%= SideBarButton.UniqueID %>')" class="<%# GetClassForWizardStep(Container.DataItem) %>"> <%# Eval("Name") %></a>

执行此操作后,您必须通过设置其css display属性none来隐藏链接按钮。

长期努力。 :)