您好,登錄后才能下訂單哦!
這篇文章主要介紹“ASP.NET AJAX怎么實現論壇主題搜索”,在日常操作中,相信很多人在ASP.NET AJAX怎么實現論壇主題搜索問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”ASP.NET AJAX怎么實現論壇主題搜索”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
我們要看的***一個示例是對現有應用程序的修改。我***聽到這個想法是 Josh Ledgard設想在 MSDN 論壇里添加一個功能。目的是嘗試幫助用戶自己找到問題的答案,以及限制重復發布的數量。一般來說,用戶在論壇中提出新問題時,他或她會輸入主題和問題。他們通常都不會先進行搜索,來查看是否已經提出和回答過該問題。輸入 AJAX。用戶輸入主題(并將 Tab 鍵移出該字段)后,我們基于該主題異步搜索論壇,并適時地向用戶顯示結果。有時這些結果會有幫助,有時候則不會。
為使結果有幫助,我們將修改 asp.NETPRO Reader's Choice Award for Best Forum Application, CommunityServer。可下載的示例中不包含這一部分(或論壇)的代碼,但是您能在 http://communityserver.org/(英文)學到關于 CommunityServer 的更多知識,并且可在其中應用下面這些代碼片斷。
安裝 CommunityServer 并配置 Ajax.NET(已將引用和處理程序添加到 web.config)后,我們只需要進行一些更改就可以獲得所需的功能。首先,我們轉到 CommunityServerForums 項目中的 CreateEditPost.cs 文件。將它視為此頁的后面的代碼,其中用戶可以添加新的發布。下面我們將添加啟用了 AJAX 的函數。
//C#:ASP.NET AJAX示例 [Ajax.AjaxMethod()] public static ArrayList Search(string search) { SearchQuery query = new SearchQuery(); query.PageIndex = 0; //獲得前 10 個結果 query.PageSize = 10; query.UserID = Users.GetUser().UserID; query.SearchTerms = search; return new ForumSearch().GetSearchResults(query).Posts; }
我們能夠利用已經在 CommunityServer 中創建的搜索功能,只需要我們的函數能應用它。如往常一樣,類型必須使用 Ajax.NET 注冊。我們將在同一文件的 InitializeSkin 函數(將其視為 Page_Load)中進行此操作。
//C#:ASP.NET AJAX示例 Ajax.Utility.RegisterTypeForAjax(typeof(CreateEditPost));
在轉跳到 JavaScript 之前,我們需要進行***的服務器端更改。返回到 Ajax.NET 的自定義類(例如我們正在返回的 ArrayList 所包含的 ForumPost)必須標有 Serializable 屬性。我們要做的是轉到 CommunityServerForums 項目中的 Components/ForumPost.cs 文件,并添加此屬性。
//C#:ASP.NET AJAX示例 [Serializable] public class ForumPost :Post { ... }
顯示時,我們僅需要修改 CommunityServerWeb 項目中的 Themes/default/Skins/View-EditCreatePost.cs。首先,我們將觸發主題文本框的 onBlur 事件。
< asp:textbox onBlur="Search(this.value);" id="PostSubject" runat="server" ... />
接著,我們編寫 JavaScript Search 方法,以便調用服務器端 Search。
var oldValue = ''; function Search(value) { //不要再次搜索剛搜索過的內容 //如果用戶向后或向前移動 Tab 鍵將會發生 if (value != oldValue) { CreateEditPost.Search(value, Search_CallBack); oldValue = value; } }
***,剩下的就是處理響應。由于上一個示例介紹了在表中顯示結果的稍微正規的方式,我們將僅僅創建一些動態的 HTML,并將它粘貼到虛擬的 DIV 中。
function Search_CallBack(response) { //由于沒有結果時搜索功能將自動重定向, //因此,我們不能使用 response.error。 var results = response.value; //如果我們沒有獲得結果 if (results == null) { return; } //我們用于放置結果的 DIV var someDiv = document.getElementById("someDiv"); var html = ""; for (var i = 0; i < results.length; ++i) { var result = results[i]; html += "< a target=_blank href='" + result.PostID html += "/ShowPost.aspx'>"; html += result.Subject; html += "< /a>< br />" } someDiv.innerHTML = html; }
通過對 CommunityServer 應用程序的三個文件(加上用于配置的 web.config)稍微進行修改,我們可以添加一些非常有用的功能。但是,只向現有的應用程序添加啟用 AJAX 功能時要小心操作。正在進行實際搜索的預先存在的 ForumSearch 類可能并不是為我們介紹的使用類型設計的。我們的代碼很可能會導致執行一些額外的搜索,影響可能會很顯著。
到此,關于“ASP.NET AJAX怎么實現論壇主題搜索”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。