键入时动态显示搜索结果

时间:2010-07-08 17:28:17

标签: c# asp.net javascript sharepoint

我正在尝试在Visual Studio中构建SharePoint 2007 Web部件。 此Web部件应搜索共享点列表并显示结果。

我想要完成的是在用户停止输入后立即显示结果,因此不会涉及点击按钮。

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

任何想法都会很棒。

这个sharepoint网站是“启用Ajax的”,顺便说一句。

由于

4 个答案:

答案 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