我試圖在Visual Studio中構建SharePoint 2007 Web部件。 此Web部件應該搜索SharePoint列表並顯示結果。在打字時動態顯示搜索結果
我想完成的是在用戶停止輸入時立即顯示結果,因此不需要點擊按鈕。
可能是text_changed事件和onkeydown javascript的組合?
任何想法都會很棒。
此sharepoint站點是「支持Ajax的」,順便說一句。
感謝
我試圖在Visual Studio中構建SharePoint 2007 Web部件。 此Web部件應該搜索SharePoint列表並顯示結果。在打字時動態顯示搜索結果
我想完成的是在用戶停止輸入時立即顯示結果,因此不需要點擊按鈕。
可能是text_changed事件和onkeydown javascript的組合?
任何想法都會很棒。
此sharepoint站點是「支持Ajax的」,順便說一句。
感謝
我會建議使用jQuery和KEYUP:
$("input#txtid").keyup(function() {
if (this.value.length < 8)
return false;
$.get("ServiceUrl", { arg: this.value }, function (result) { $("#output").html(result); });
});
照顧UI部分的最簡單的方法是使用AjaxToolkit AutoCompleteExtender瑟MOSS, AJAX and the AutoCompleteExtender那麼所有你需要做的只是決定你想如何在網絡服務內搜索工作
我在我的web部分使用UpdatePanel
來解決這個問題。然後,我在UpdatePanel中添加了一個Button(稍後詳細介紹)和一個TextBox。
我也有一個JavaScript類,它處理用戶在鍵入查詢時暫停後提交查詢的所有邏輯。它包含了其連接到TextBox的onkeyup
事件的事件處理程序:
t.Attributes.Add("onkeyup", "javascript:oSearchClass.KeyUpEventHandler(event);");
我以前setTimeout and clearTimeout處理時,類應該叫SubmitQuery
功能。
當調用SubmitQuery()
時,它會使文本框只讀(因此用戶在查詢時不能輸入任何內容),然後使用click()
「點擊」按鈕。由於您使用的是普通按鈕,因此您可以像處理常規一樣處理Button.click事件,以重新查詢列表並顯示結果。
如果你不想讓你的用戶看到按鈕,你可以簡單地把它放在隱藏的span
WebControl中。
看看這個示例,它會在標準SharePoint搜索框中添加「正在搜索」。
Automatically add ‘Search As You Type’ to every SharePoint page using Infuser。
+1,但使用'keydown'和'change'。請記住,用戶可以使用鼠標技術來改變搜索詞(剪切,粘貼,拼寫正確等) – 2010-07-08 17:45:08