我遇到了一些像这样的代码:
public string IsAdmin()
{
string style = "";
if(EditUserName == "")
{
style = "visibility:hidden;display:none";
}
return style;
}
然后在html中,我看到这样的事情:
<table style='<%= IsAdmin() %>'>
</table>
以上似乎不是最好的方法。是否有一种更有效和替代的方式来以编程方式设置html元素的样式。
答案 0 :(得分:3)
如果你使用这种安排:
<table runat="server" ID="tableElement">
</table>
然后,你可以这样做:
HtmlTable table = (tableElement as HtmlTable);
table.Style.Add(HtmlTextWriterStyle.Display, "none");
table.Style.Add(HtmlTextWriterStyle.Visibility, "hidden");
修改强>
根据其他建议,你可以改用这种技术:
table.Style.Add("class", "whatever");
答案 1 :(得分:3)
对我来说,看起来你真正想要的是基于权限的可见性而不是真正的样式,为什么不这样做:
<强>标记:强>
<table runat="server" visible='<%= IsVisible() %>'>
</table>
<强>代码隐藏:强>
protected bool IsVisible()
{
bool result= true;
if(EditUserName == string.empty)
{
result= false;
}
return result;
}
答案 2 :(得分:2)
我首先要说的是,在元素上设置内联样式通常是一种不好的做法 - 尤其是在服务器端代码上。
通常应通过外部样式表设置样式。
在客户端操作DOM时,有许多可接受的方法来设置元素的样式。通常,编码人员使用像jQuery这样的库是有效的。