【问题标题】:The Server tag is not well formed error in a Wizard向导中的服务器标记格式错误
【发布时间】:2013-11-26 17:24:00
【问题描述】:

我收到“服务器标记格式错误”。请看以下代码:

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

【问题讨论】:

    标签: c# asp.net servertag


    【解决方案1】:

    您不能在服务器控件的属性中使用

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

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

    【讨论】:

    • 您能更正一下吗?我们可以在 Server 控件属性中使用什么?
    • 好吧,问题是您根本不能在属性中使用服务器代码。因此,您要么必须在转发器上为 ItemDataBound 编写一个处理程序,您可以在其中手动填写属性,或者您必须手动编写链接按钮,您可以在其中使用它,但您必须处理您的 PostBack 逻辑拥有。
    • 如果你真的不知道该怎么做,我可以用你自己的代码给你写一个解决方案,但它会花费比这更长的时间:)
    【解决方案2】:

    或者,您可以使用简单的锚标记并将所有绑定应用到它。并使其引起与您的按钮相同的回发。示例:

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

    完成此操作后,您必须通过将其 css 显示属性设置为 none 来隐藏链接按钮。

    长期工作。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-02
      • 1970-01-01
      • 1970-01-01
      • 2020-04-27
      相关资源
      最近更新 更多