2013-11-26 76 views
1

我收到「服務器標記格式錯誤」錯誤。請參閱以下代碼:嚮導中的服務器標記格式不正確

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

回答

3

您不能在服務器控件的屬性中使用<%#。

因此,如果您想在Repeater內部使用LinkBut​​ton,則必須使用Repeater.ItemDataBound事件綁定代碼隱藏中的屬性。從MSDN

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

+0

你能改正它嗎?我們可以在Server的控制屬性裏面使用什麼? – bunnie

+0

嗯,問題是你根本不能在屬性中使用服務器代碼。因此,您必須在中繼器上爲ItemDataBound編寫一個處理程序,您可以在其中手動填寫屬性,或者必須手動編寫鏈接按鈕,以便在其中使用它,但必須處理您的PostBack邏輯擁有。 – Luaan

+0

如果你真的不知道該怎麼做,我可以在你自己的代碼中給你寫一個解決方案,但是這需要比這個更長的時間:) – Luaan

0

或者您可以使用一個簡單的錨標記,並應用所有綁定到它。並使它與您的按鈕所做的相同。例如:

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

這樣做後,你將不得不隱藏鏈接按鈕的設置其css顯示屬性無。

長時間工作。 :)

相關問題