我希望我的 asp.net TextBox 在不按 Enter 或 Tab 键的情况下在 TextBox 中键入文本时导致自动回发并激活服务器端事件,类似于 WinForms。这可能吗?如果是这样,是否只有在输入一定数量的字符(例如三个或四个)后才会发生这种情况?谢谢你。
问问题
7556 次
4 回答
2
您无法比较 Windows 应用程序和 Web 应用程序。在用户输入字符时回发到服务器意味着必须从 ASP.NET 重新创建所有 HTML 并将其发送回客户端。但这里有一个例子:
aspx:
<script type="text/javascript">
var MIN_TEXTLENGTH = 3;
function checkPostback(ctrl) {
if (ctrl != null && ctrl.value && ctrl.value.length >= MIN_TEXTLENGTH) {
__doPostBack(ctrl.id, '');
}
}
</script>
<asp:TextBox ID="TextBox1" OnKeyUp="checkPostback(this);" AutoPostBack="true" OnTextChanged="TextChanged" runat="server"></asp:TextBox>
代码隐藏:
Protected Sub TextChanged(ByVal sender As Object, ByVal e As EventArgs)
TextBox1.Attributes.Add("onfocus", "javascript:this.value=this.value;")
TextBox1.Focus()
End Sub
于 2011-07-06T11:34:33.243 回答
0
TextChange
TextBox 的事件将成为blur
JavaScript 中的事件。这意味着它可以触发回发,只有当您离开控件(在客户端是输入或文本区域的文本框)并且值发生更改时。所以,没有技巧是不可能的。
但是,关于您的体系结构(您希望将信息回发到服务器的方式),我不得不说它不会起作用,伙计。回邮真的很贵,你应该尽可能避免它们。我的建议是结合输入框的keydown事件使用ajax。
于 2011-07-06T11:14:34.513 回答
0
您可以使用 Ajax 和 onkeypress 事件以及某种计数器来执行此操作。
因此,您将一个函数连接到 textarea 的 onKeyPress 事件,该事件每次触发时都会增加一个计数器,当此数字达到 3 或 4 时,您调用一个 ajax 函数,该函数在后台将表单发布到服务器,然后重置再次反击。
这将导致在使用 textarea 时发生的每 3 次或第 4 次按键(即每次按键 - 空格、回车、退格等)在后台发布表单...
于 2011-07-06T11:19:06.040 回答