我在页面上有一个TextBox控件,我想用它来过滤网格。我希望TextBox控件以异步方式回发到页面,因为用户在文本框中输入值;优选地以一定间隔(即,在用户在回发之前停止键入之后等待500ms)。
如何在ASP.net中完成此操作?我知道UpdatePanel和TextBox TextChanged事件并没有给我我需要的东西,因为它不会在用户输入时触发,只有在控件失去焦点或者页面以其他方式发布后才会触发。
我也不想要自动完成类型功能。是否有任何控件可以让我做我想做的事情?
答案 0 :(得分:1)
您可以使用jquery,在keyUp()事件上触发它,并在触发ajax调用之前设置setTimeOut方法。
$("#id input").keyup(function(){
var $value = $(this);
if (this.value != this.lastValue) {
if (this.timer) clearTimeout(this.timer);
msgbox.css({"background-image":"none"}).html('<img src="img/ajax-loader.gif" height="16" width="16" /> checking availability...');
this.timer = setTimeout(function () {
$.ajax({
type: "POST",
url: "Default.aspx/StaticMethod",
data: "{'username': '" + $value .val() + "'}",
contentType: "application/json",
dataType: "json",
success: function(msg) {
if (msg.d != 1) {
//
}
else {
//
}
}
});
}, 200);
this.lastValue = this.value;
}//
}
});
答案 1 :(得分:0)
我认为OnKeyUp Javascript function最适合您的需求。
根据您的工作情况,这可能会在性能方面付出代价......