我正在尝试在Visual Studio中构建SharePoint 2007 Web部件。 此Web部件应搜索共享点列表并显示结果。
我想要完成的是在用户停止输入后立即显示结果,因此不会涉及点击按钮。
可能是text_changed事件和onkeydown javascript的组合吗?
任何想法都会很棒。
这个sharepoint网站是“启用Ajax的”,顺便说一句。
由于
答案 0 :(得分: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 :(得分:0)
处理UI部分的最简单方法是使用AjaxToolkit AutoCompleteExtender se MOSS, AJAX and the AutoCompleteExtender,然后您所要做的就是决定如何在Web服务中进行搜索工作
答案 2 :(得分:0)
我在我的网站部分使用UpdatePanel
来解决这个问题。然后我在UpdatePanel上添加了一个Button(稍后会详细介绍)和TextBox。
我还有一个JavaScript类,它处理用户在键入查询时暂停后提交查询的所有逻辑。它包含附加到TextBox的onkeyup
事件的事件处理程序:
t.Attributes.Add("onkeyup", "javascript:oSearchClass.KeyUpEventHandler(event);");
我使用setTimeout and clearTimeout来处理类应该调用SubmitQuery
函数的时间。
调用SubmitQuery()
时,它会使TextBox成为只读(因此用户在查询时无法输入任何内容),然后使用click()
“点击”按钮。由于您使用的是普通按钮,因此您可以像正常一样处理Button.click事件,以重新查询列表并显示结果。
如果您不希望用户看到该按钮,只需将其放入隐藏的span
WebControl中即可。
答案 3 :(得分:0)
看一下这个示例,它会在标准SharePoint搜索框中添加“键入时搜索”。
Automatically add ‘Search As You Type’ to every SharePoint page using Infuser