ASP.net 2.0,Visual Studio 2005和標準控件(如<asp:DropDownList>
等)要求我在AutoPostBack="true"
之後調用後面的代碼。但爲什麼?這不應該發生嗎? 謝謝爲什麼我必須強制AutoPostBack =「true」?
0
A
回答
1
代碼在服務器上運行。 HTML代碼和Javascript在瀏覽器上運行。
下拉列表是在瀏覽器上運行的HTML元素。如果不將數據發送回服務器,它無法在服務器上執行任何操作。 ASPX Web表單將數據發送到服務器的方式是通過回發。
有時您不希望將下拉列表發送到服務器。它確實減慢了用戶體驗,不得不等待某些事情發生。要加快速度,可以禁用列表控件上的回發;只有當用戶發佈整個表單時纔會聯繫服務器。此時,服務器可以檢查列表控件以查看其值是否已更改並採取措施。
0
另一種方法是他們只調用JavaScript(在客戶端),而不是往返服務器(回發)。
由於它在客戶端並且不需要往返於服務器,所以Javascript速度更快,但它可以被用戶禁用或更改。
1
不,這不應該發生。
asp:DropDownList
是生成單個下拉列表的控件。這會呈現爲客戶端的select
標記。一個select
標籤通常有收集來自用戶的輸入,而不是提交表單。
強制AutoPostBack="true"
是必要的,因爲只要選定的索引發生變化,就會導致回發。雖然這可能很有用,但這是而不是select
標記的預期行爲,並且大多數開發人員不會想要此操作...出於性能方面的原因...或者如果它是較大形式的一部分,它會中斷用戶流程等。
相關問題
- 1. 爲什麼我必須 - 強制我的git提交
- 2. 爲什麼我必須將NSMutableArray強制轉換爲NSMutableArray?
- 3. 爲什麼boto強制s3桶必須小寫?
- 4. 爲什麼我必須在C#中將枚舉強制轉換爲int?
- 5. 爲什麼我必須點擊兩次?
- 6. 爲什麼我必須編譯JavaFX SceneBuilder?
- 7. 爲什麼我必須轉換變量?
- 8. 爲什麼我必須使用-lstdC++ fs?
- 9. 爲什麼我必須包含索引?
- 10. 爲什麼我必須使用this.canvas?
- 11. 爲什麼我必須輸入兩次?
- 12. 爲什麼我必須使用Sobel Operator?
- 13. Zend_Db_Table_Row:爲什麼我必須使用createRow()?
- 14. 爲什麼我必須施放代表?
- 15. 爲什麼我必須調用base.OnAuthorization(filterContext)
- 16. 爲什麼我必須聲明var = Class.new?
- 17. 爲什麼我必須在通用類
- 18. 爲什麼我必須調用do_action('wp_footer')?
- 19. 爲什麼我必須逃脫最終]
- 20. 爲什麼我們必須綜合?
- 21. 爲什麼我必須殺死-9 neo4j?
- 22. 當autopostback必須設置爲true(包含代碼)時,無回傳的Dropdownlist
- 23. 爲什麼boolean true在IE中必須使用JSON方法?
- 24. 爲什麼我必須保留/複製這個NSString?
- 25. 爲什麼我們必須寫頭緩存控制?
- 26. 我必須爲管理控制器選擇什麼模式mvc
- 27. 強名必須
- 28. 爲什麼我必須點擊我的提交按鈕兩次?
- 29. 爲什麼-1在VB6中將True強制爲一個整數?
- 30. 爲什麼我必須壓制誤差爲我的功能工作
這就是爲什麼我問這個問題。如果下拉列表導致一些行爲,那麼默認情況下,該「行爲」不應該在服務器上嗎?這就是ASPX開發的全部內容,我會想到的 - 客戶端接口與代碼隱藏進程(畢竟客戶端服務器技術)。 – Fandango68
'select'的行爲是爲了讓客戶端選擇一些東西,而不是回發。使用此設置輕鬆回發是一種方便。但是,一旦你更熟悉JavaScript和AJAX,你很可能不會使用這個設置。 – MikeSmithDev