【发布时间】:2011-06-16 18:24:37
【问题描述】:
我支持使用runat="server" 到处显示/隐藏表格行的应用程序。
例如,在存在依赖 DropDownLists 的地方,带有子 ddl 的行将被隐藏,直到我们在父 ddl 中选择了一个值。
这是一种不好的做法吗?有没有更好的方法来做到这一点?
【问题讨论】:
标签: asp.net html runatserver
我支持使用runat="server" 到处显示/隐藏表格行的应用程序。
例如,在存在依赖 DropDownLists 的地方,带有子 ddl 的行将被隐藏,直到我们在父 ddl 中选择了一个值。
这是一种不好的做法吗?有没有更好的方法来做到这一点?
【问题讨论】:
标签: asp.net html runatserver
我在需要时使用runat="server"。所以我认为你也可以使用它。 :-)
【讨论】:
这就是我隐藏包含其他服务器控件的行的方法。其他选项是使用 asp:panel 或其他容器,但这会添加更多 HTML 而没有任何好处。
【讨论】:
一点也不。 ASP.NET 支持使任何 html 标记在服务器端运行。您的替代方法是将标签包装在Panel 中,然后隐藏或显示它。如果您不是在寻找额外的功能或想自己控制输出,那么在服务器上运行一个 html 标记不是问题。
【讨论】:
我认为这不一定是坏习惯。我做过很多次同样的事情。我认为这主要是个人喜好。
【讨论】:
将 runat="server" 与标准 HTML 控件一起使用还不错。您经常会发现使用 PlaceHolders 来显示和隐藏页面上的内容,或者在 ASP.NET MVC 中,您可能会在视图中看到诸如 之类的内联代码块的使用。就其本身而言,不考虑其他设计方面,它既不好也不坏。
【讨论】:
我认为这绝对是一种糟糕的做法。首先,除非您需要新数据,否则您无需前往服务器隐藏和显示控件。
其次,任何体面的 javascript 框架都允许您根据控件的 id、类名或任何 css 选择器隐藏显示控件。此外,使用 javascript post/get 到通用处理程序将为您提供所需的数据,而无需回发。
我建议使用 JQuery 或其他替代方法。
【讨论】:
这取决于您对性能的关注程度。任何标有 runat="server" 的内容都经过了比客户端标签更多的处理。
就个人而言,我以前使用过它们。特别是在表格单元格或表格行依赖于来自服务器的数据的情况下。您可以使用带有隐藏字段的 Javascript 或 JQuery,但您仍然需要为隐藏字段访问服务器,所以它不会买太多。
【讨论】: