2010-10-25 65 views
2

aspx文件添加類錨標記的代碼重複的內部後面

<ul> 
         <asp:Repeater runat="server" ID="rpt1" OnItemDataBound="rpt1_ItemDataBound"> 
          <HeaderTemplate> 
           <li><a id="a1" href="javascript:void(0);" runat="server">Text</a></li> 
          </HeaderTemplate> 
          <ItemTemplate> 
           <li><a id="name" runat="server" href="javascript:void(0);"> 
            <%# Eval("Name").ToString() %></a> 
            <asp:Label runat="server" ID="lblID" Visible="false" Text='<%#Eval("ID") %>'></asp:Label> 
         </li> 
          </ItemTemplate> 
         </asp:Repeater> 
        </ul> 

現在有這repeater..what我想要的ItemTemplate中的五個項目是設置類每個錨標記爲「mySprite上ID1時,mySprite ID2時,mySprite ID3等。」

爲我在後面的代碼這樣做...

for (int i = 1; i < 6; i++) 
       { 
        Name.Attributes.Add("class", "sprite id" + i); 
       } 

現在,當我瀏覽網頁源文件,我所有的錨標籤已經得到class設爲class =「sprit e id5「

我做錯了什麼? Plz help..thnx

回答

2

嘗試在你的OnItemDataBound事件處理程序是這樣的ID字段:

protected void rpt1_ItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 
    if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem)) 
    { 
     HtmlAnchor nameAnchor = (HtmlAnchor)e.Item.FindControl("name"); 
     nameAnchor.Attributes.Add("class", "sprite id" + (e.Item.ItemIndex + 1)); 
    } 
} 
+0

我試過這個..現在該類顯示爲空字符串在頁面的源代碼中的所有錨標記:( – Serenity 2010-10-25 05:06:16

+0

好吧,我做了一個愚蠢的錯誤..現在工作正常..謝謝!:D – Serenity 2010-10-25 05:11:39

+0

校正 - 製作* – Serenity 2010-10-30 12:04:02

1

for循環的末尾,Name的值爲「id5」。首先對代碼後面的for循環進行求值,然後將「id5」的最終結果值綁定到中繼器(5次)。

由於<asp:Repeater>旨在顯示DataSource的數據,因此可以添加類名「id1,id2,id3,id4,id5等」。分配給每行數據,並將該字段綁定到類名稱。

或者,除非你正在使用的GUID,您可以Concat()表爲「ID」

+0

所以我需要做什麼改變以使其工作? – Serenity 2010-10-25 04:34:02

+0

是的,我知道..這就是爲什麼要問如何做到這一點:) – Serenity 2010-10-25 04:38:52

+0

哇,期待*高*獲得快速解決方案在這個網站! – JohnB 2010-10-25 04:42:21