實現需要AJAX回調的用戶控件的最佳方式是什麼?在ASP.NET用戶控件中使用AJAX回調
我要完成的幾件事情:
- 在瀏覽器中完成的事件(例如,拖放)觸發AJAX通知可以提高控制事件,使用它會導致頁面上的代碼控制做它需要做的事情(例如,改變數據庫中的值)。
- 部分更新(不使用更新面板),可以執行諸如在文本框下方填充自動完成下拉菜單等操作。
- 實行單一用戶控件是通用在幾個頁面上被重用
- 避免執行該傳遞活動回到控制頁面本身的邏輯,因爲這是重複和難以維持
我對大多數客戶端的東西使用jQuery,但對於實際的AJAX調用,我並不在乎它是jQuery還是ASP AJAX庫。
有效的是,用戶控件上的PageMethods是完美的,它很容易從客戶端腳本調用。不幸的是,據我所知,pagemethods不適用於用戶控件。
我會使用自動完成控制爲例:
我應該能夠把頁面上的自動完成控件,然後在網頁代碼,例如:
Public Sub HandleLookup(ByVal input As String, ByRef list As List(Of String) Handles MyControl.LookupEntries
list = New List(Of String)
' Query database for list of items..
For Each item as String in FullItemList
If item.StartsWith(input) then list.Add(item)
Next
Return list
End Sub
而且別無其他..代碼的其餘部分應該在usercontrol中。
請注意,我試圖製作的控件比例如自動完成更具體。它們不存在於任何第三方庫中,我真的需要能夠自己製作它們。
謝謝,讓我去。它不是那麼直觀或強大的(真的只允許一個參數(字符串)) - 這意味着我必須編寫一個小庫來對字符串進行編碼/解碼,並讓我模擬多個「函數」。但它確實有效,現在所有東西都在一個控件中獨立存在 – gregmac 2008-10-21 05:22:53