2012-11-19 16 views
0

我的目標是創建一系列可點擊的按鈕,每個按鈕都有唯一的圖像。目前這些圖像以CSS的形式存儲爲類,並且顯示正常 - 我可以通過GImg EGCImg1,GImg EGCImg2等等來調用它們。但是,我希望使這種動態變化,因此我可以設置X個按鈕而不是複製/粘貼代碼(我討厭這麼做)。以下是我能找到的唯一「有用」資源,但不幸的是,他們的建議對我無效。動態命名aspx中的類

http://forums.asp.net/t/1619813.aspx/1

http://www.codeproject.com/Articles/14033/Dynamic-CSS-Styling-in-ASP-NET-A-Flexible-Approach

所以基本上下面的代碼,當我手動設置{0}將很好地工作。如果我設置了這個值,他們甚至可以正確地列出來 - 只需要全部使用相同的圖像。

只有<%string.Format(「GImg EGCImg {0}」,i); %>已損壞。

<% for (int i = 0; i < 3; i++){ %> 
    <li> 
    <label class="baseTemplate"> 
     <b> 
      <%=Html.RadioButtonFor(x => x.Input.MailTemplate, i)%> 
     </b><span class="<% string.Format("GImg EGCImg{0}", i); %>"><span class="CheckMark"/> 
      </span> 
     </label> 
    </li><% } %> 

任何和所有的建議,歡迎, 謝謝!

+1

「只有' <%string.Format(「GImg EGCImg {0}」,i);%>'已損壞。「 - 破了怎麼樣? – millimoose

+0

嘗試'<%= string.Format(...)%>' – millimoose

+0

您是否需要Response.Write來打印格式化的字符串? – Naner

回答

1

你錯過了=<%

此外,您還可以執行以下操作:

<span class="GImg EGCImg<%= i.ToString() %>"><span class="CheckMark"/></span> 

而不是使用String.Format方法,只是追加了i在你的課程結束後。開銷也少一點。

=好像是說Response.Write

+0

正如我在評論中所說的,<%=不適合我,其他三種變體都不會,都會說「表達預期」但是!你的第二點工作!謝謝!我之前嘗試過,但我沒有ToString(),這很有道理。 –

+0

非常好:)很高興幫助 – Darren

1

一個選擇是使用內聯css,所以不要使用class =「classname」,你可以使用style =「background:red;」。這是最簡單的方法,不需要更改太多的代碼。您也可以在頭部生成動態CSS,或將外部鏈接到生成的CSS文件。

+0

你能舉一個小例子嗎?我有一個外部的css文件 - 所以我可以使用它,但我不完全明白你的意思。謝謝! –

+0

'Nevermind',因爲我從不同的用戶那裏得到了答案 - 儘管如此,也可以爲其他人回答:) –

+0

我想我誤解了你的意思問題:我以爲你試圖避免在你的樣式表中創建新的CSS類,每次你想添加一個按鈕時,很高興你找到答案=) – AlbertVo

0

您可以使用Attributes.Add和Attributes.Remove

aspx文件

<span id="YourContainer" runat="server">Report Type</span> 

C#代碼背後

YourContainer.Attributes.Add("class", "active"); 
YourContainer.Attributes.Remove("class");