C# 以键入方式动态显示搜索结果

C# 以键入方式动态显示搜索结果,c#,asp.net,javascript,sharepoint,C#,Asp.net,Javascript,Sharepoint,我正在尝试在Visual Studio中构建SharePoint 2007 web部件。 此web部件应搜索sharepoint列表并显示结果 我想要完成的是在用户停止键入时立即显示结果,因此不需要单击按钮 可能是文本更改事件和onkeydown javascript的组合 任何想法都很好 顺便说一句,此sharepoint网站“支持Ajax” 谢谢我建议使用jquery和keyup: $("input#txtid").keyup(function () { if

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

我想要完成的是在用户停止键入时立即显示结果,因此不需要单击按钮

可能是文本更改事件和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); });

            });
$(“input#txtid”).keyup(函数(){
如果(此.value.length<8)
返回false;
$.get(“ServiceUrl”,{arg:this.value},函数(结果){$(“#输出”).html(结果);});
});

处理UI部分最简单的方法是使用AjaxToolkit AutoCompleteXtender se,然后您所要做的就是决定如何在web服务中进行搜索

我通过在我的web部件中使用一个
更新面板来实现这一点。然后我在UpdatePanel中添加了一个按钮(稍后将对此进行详细介绍)和一个文本框

我还有一个JavaScript类,它处理用户在键入查询时暂停后提交查询的所有逻辑。它包含附加到文本框的
onkeyup
事件的事件处理程序:

t.Attributes.Add(“onkeyup”,“javascript:oSearchClass.KeyUpEventHandler(event);”

我曾经处理类何时应该调用
SubmitQuery
函数

调用
SubmitQuery()
时,它将文本框设为只读(因此用户在查询时不能键入任何内容),然后使用
click()
单击按钮。由于您使用的是普通按钮,因此可以处理该按钮。单击“与普通类似的事件”可重新查询列表并显示结果


如果您不想让用户看到该按钮,只需将其放入隐藏的
span
WebControl中即可。

查看此示例,它会将“键入时搜索”添加到标准SharePoint搜索框中


。请记住,用户可以使用鼠标技术更改搜索词(剪切、粘贴、拼写正确等)