2010-07-08 58 views
2

我試圖在Visual Studio中構建SharePoint 2007 Web部件。 此Web部件應該搜索SharePoint列表並顯示結果。在打字時動態顯示搜索結果

我想完成的是在用戶停止輸入時立即顯示結果,因此不需要點擊按鈕。

可能是text_changed事件和onkeydown javascript的組合?

任何想法都會很棒。

此sharepoint站點是「支持Ajax的」,順便說一句。

感謝

回答

3

我會建議使用jQuery和KEYUP:

$("input#txtid").keyup(function() { 
       if (this.value.length < 8) 
        return false; 

       $.get("ServiceUrl", { arg: this.value }, function (result) { $("#output").html(result); }); 

      }); 
+1

+1,但使用'keydown'和'change'。請記住,用戶可以使用鼠標技術來改變搜索詞(剪切,粘貼,拼寫正確等) – 2010-07-08 17:45:08

0

照顧UI部分的最簡單的方法是使用AjaxToolkit AutoCompleteExtender瑟MOSS, AJAX and the AutoCompleteExtender那麼所有你需要做的只是決定你想如何在網絡服務內搜索工作

0

我在我的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中。