2013-10-08 230 views

回答

1

代碼在服務器上運行。 HTML代碼和Javascript在瀏覽器上運行。

下拉列表是在瀏覽器上運行的HTML元素。如果不將數據發送回服務器,它無法在服務器上執行任何操作。 ASPX Web表單將數據發送到服務器的方式是通過回發。

有時您不希望將下拉列表發送到服務器。它確實減慢了用戶體驗,不得不等待某些事情發生。要加快速度,可以禁用列表控件上的回發;只有當用戶發佈整個表單時纔會聯繫服務器。此時,服務器可以檢查列表控件以查看其值是否已更改並採取措施。

0

另一種方法是他們只調用JavaScript(在客戶端),而不是往返服務器(回發)。

由於它在客戶端並且不需要往返於服務器,所以Javascript速度更快,但它可以被用戶禁用或更改。

1

不,這不應該發生。

asp:DropDownList是生成單個下拉列表的控件。這會呈現爲客戶端的select標記。一個select標籤通常有收集來自用戶的輸入,而不是提交表單。

強制AutoPostBack="true"是必要的,因爲只要選定的索引發生變化,就會導致回發。雖然這可能很有用,但這是而不是select標記的預期行爲,並且大多數開發人員不會想要此操作...出於性能方面的原因...或者如果它是較大形式的一部分,它會中斷用戶流程等。

+0

這就是爲什麼我問這個問題。如果下拉列表導致一些行爲,那麼默認情況下,該「行爲」不應該在服務器上嗎?這就是ASPX開發的全部內容,我會想到的 - 客戶端接口與代碼隱藏進程(畢竟客戶端服務器技術)。 – Fandango68

+1

'select'的行爲是爲了讓客戶端選擇一些東西,而不是回發。使用此設置輕鬆回發是一種方便。但是,一旦你更熟悉JavaScript和AJAX,你很可能不會使用這個設置。 – MikeSmithDev

相關問題