0

我希望我的 asp.net TextBox 在不按 Enter 或 Tab 键的情况下在 TextBox 中键入文本时导致自动回发并激活服务器端事件,类似于 WinForms。这可能吗?如果是这样,是否只有在输入一定数量的字符(例如三个或四个)后才会发生这种情况?谢谢你。

4

4 回答 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

TextChangeTextBox 的事件将成为blurJavaScript 中的事件。这意味着它可以触发回发,只有当您离开控件(在客户端是输入或文本区域的文本框)并且值发生更改时。所以,没有技巧是不可能的。

但是,关于您的体系结构(您希望将信息回发到服务器的方式),我不得不说它不会起作用,伙计。回邮真的很贵,你应该尽可能避免它们。我的建议是结合输入框的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 回答
0

这似乎是个坏主意,但是...

你不会有一些java脚本来读取按键,然后在达到某个字符限制时启动一个帖子吗?

使用Ajax的按键事件或简单地提交应该可以工作。

- 似乎另一张海报击败了我。

于 2011-07-06T11:19:27.510 回答