2011-01-27 66 views
7

我正在支持一個在所有地方都使用runat="server"來顯示/隱藏表格行的應用程序。在<tr>上使用runat =「server」不好嗎?

例如,在那裏有依賴DropDownLists的地方,與孩子DDL的行會被隱藏,直到我們在父DDL選擇的值。

這是不好的做法?有一個更好的方法嗎?

回答

9

我用runat="server"任何時候我需要它。所以我認爲你也可以使用它。 :-)

+3

有史以來最佳答案! – Homer 2011-02-16 14:49:14

1

這就是我做的隱藏包含其他服務器控件的行。其他選項是使用asp:面板或其他容器,但是這將增加更多的HTML而沒有任何收益。

+2

ASP:佔位符,以避免額外的渲染HTML – 2011-01-27 18:49:18

+0

我在ASPX頁面本身意義HTML和服務器變量的一種方式。 – David 2011-01-27 20:51:52

0

根本不是。 ASP.NET支持在服務器端運行任何html標記。您的替代方法是將標籤包裝在Panel中,並隱藏或顯示該標籤。如果您沒有在尋找額外的功能或者想自己控制輸出,那麼在服務器上運行html標籤不是問題。

1

我認爲這不一定是壞習慣。我做了很多次相同的事情。我認爲這主要是個人偏好。

2

這不是不好用RUNAT =「服務器」標準的HTML控件。通常您會發現使用PlaceHolders來顯示和隱藏頁面上的內容,或者在ASP.NET MVC中,您可能會在視圖中看到使用內聯代碼塊,例如<%...%>。在它自己而不考慮其他設計方面,它既不好也不壞。

6

我認爲這是絕對可怕的做法。首先,除非您需要新數據,否則您無需前往服務器以隱藏和顯示控件。

其次,任何像樣的JavaScript框架將允許您隱藏基於控件的ID,類名,或者任何CSS選擇器顯示的控制。此外使用javascript post/get通用處理程序將爲您提供所需的數據,而無需回發。

我建議使用jQuery或其他一些替代品。

5

這取決於你對性能的關心程度。任何標記爲runat =「server」的內容都會經過比客戶端標記更多的處理。

就我個人而言,我已經使用過它們。特別是在表格單元格或表格行依賴於來自服務器的數據的情況下。您可以使用帶有隱藏字段的Javascript或JQuery,但您仍然必須爲隱藏字段選擇服務器,因此它不會購買太多。

相關問題