我试图在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