在服务器端控件中使用代码隐藏变量值

时间:2014-02-16 22:10:13

标签: c# asp.net webforms

我必须在运行中为某些元素设置一些 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"它可以工作,但我不能删除它。

1 个答案:

答案 0 :(得分: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();