2014-02-16 86 views
1

我必須設置一些CSS樣式對即時的一些元素:使用代碼隱藏變量值

<div runat="server" id="frmEntranceDate" 
class='<%= dateCol %> uk-float-right'>foo</div> 

但輸出HTML是這樣的:

<div id="frmReport_frmEntranceDate_0" class="<%= dateCol %> 
uk-float-right">foo</div> 

如何在那裏使用dateCol值?它在後面的代碼中定義,如果我從它的ASP.net元素中刪除runat="server",但它無法刪除它。

+0

我認爲,做這樣的事情,當你需要更換與服務器端值整個屬性。所以服務器端代碼塊內的字符串連接也是如此。 – Chris

回答

3

你不能用服務器端控件來做到這一點。您需要在代碼隱藏文件中設置其值。

標記

<div id="frmEntranceDate" runat="server"> 
    foo 
</div> 

C#

frmEntranceDate.Attributes["class"] = dateCol + " uk-float-right"; 

但如果你真的想用這個語法和設定值的標記裏面,我能想到的唯一方法是綁定控件。

注意這裏使用的是#而不是=

標記

<div id="frmEntranceDate" runat="server" class='<%# dateCol + " uk-float-right" %>'> 
    foo 
</div> 

C#

frmEntranceDate.DataBind(); 
+0

謝謝,它甚至沒有'frmEntranceDate.DataBind();' – Maysam

+0

它的工作,如果它是在一個數據綁定控件,如GriView或Repeater –