我支持在整个地方使用runat="server"
显示/隐藏表格行的应用程序。
例如,在存在依赖DropDownLists的地方,具有子ddl的行将被隐藏,直到我们在父ddl中选择了值。
这是一种不好的做法吗?有更好的方法吗?
答案 0 :(得分:9)
我在需要时随时使用runat="server"
。所以我认为你也可以使用它。 : - )
答案 1 :(得分:6)
我认为这绝对是一种糟糕的做法。首先,除非您需要新数据,否则您无需前往服务器隐藏和显示控件。
其次,任何体面的JavaScript框架都允许您根据控件的id,类名或任何css选择器隐藏show控件。此外,使用javascript post / get to a generic handler将为您提供所需的数据而无需回发。
我建议使用JQuery或其他替代方案。
答案 2 :(得分:5)
这取决于您对表现的关注程度。任何用runat =“server”标记的内容都要经过比客户端标签更多的处理。
就个人而言,我之前使用过它们。特别是在表格单元格或表格行依赖于来自服务器的数据的情况下。您可以将Javascript或JQuery与隐藏字段一起使用,但仍然需要在服务器上搜索隐藏字段,因此它不会占用太多。
答案 3 :(得分:2)
将runat =“server”与标准HTML控件一起使用并不错。通常,您会发现使用PlaceHolders来显示和隐藏页面上的内容,或者在ASP.NET MVC中,您可能会看到使用内联代码块,例如<%...%>在意见内。在它自己而不考虑其他设计方面,它既不好也不坏。
答案 4 :(得分:1)
这就是我要隐藏包含其他服务器控件的行。其他选项是使用asp:panel或其他容器,但这会增加更多的HTML而没有任何好处。
答案 5 :(得分:1)
我认为这不一定是不好的做法。我做了很多次同样的事情。我认为这主要是个人偏好。
答案 6 :(得分:0)
完全没有。 ASP.NET支持在服务器端运行任何html标记。您可以选择将标记包装在Panel
中,然后隐藏或显示该标记。如果您没有寻找额外的功能或者想自己控制输出,那么在服务器上运行html标签不是问题。