0

我正在阅读教科书“Sams ASP.NET 4 unleashed”,我对 ASP.NET TextBox 控件的 TextChanged 属性和 AutoPostBack 属性之间的区别感到困惑。

该书将这两个属性解释为:

AutoPostBack - 使您能够在 TextBox 的内容发生更改时将包含 TextBox 的表单自动发送回服务器。

然后,

TextChanged - 当文本框的内容发生更改时在服务器上引发。

然后继续解释:

当 AutoPostBack 属性的值为 True 时,包含 TextBox 的表单会在 TextBox 的内容发生更改时自动回发到服务器。如果您修改了文本框的内容并从 TextBox 控件中跳出选项卡,则表单会自动发送回服务器,并显示 TextBox 的内容。

让我感到困惑的是这一行:

即使不使用 AutoPostBack 属性,也可以处理 TextChanged 事件。

那么,Autopostback 属性和 textchanged 属性之间的区别是什么导致页面再次发布到服务器?还是这两种方法的工作方式彼此不同?我很困惑..请帮助我更好地理解它。

4

2 回答 2

4

即使不使用 AutoPostBack 属性,也可以处理 TextChanged 事件。

是的,这是真的。TextChanged 即使事件没有立即回发,您也可以在下次往返服务器时处理该事件。

  • 因此,当您处理事件并AutoPostBack设置为true时,回发将立即发生并引发 TextChanged 事件。
  • AutoPostBack设置为 时false,您可以在下一次回发时处理该事件(fe a button-click)

Autopostback 属性和 textchanged 属性之间的区别是什么导致页面再次发布到服务器

所以粗体印刷是完全错误的。不同之处在于一个控制回发行为,另一个注册一个事件处理程序。

于 2012-07-05T14:08:24.050 回答
2

当回发完成并定向到自身页面时,将引发 TextChanged。加载循环后引发此事件。这意味着 TextChanged 在两个回发之间上升。

AutoPostBack 属性正在激活回发,当文本框的内容发生更改并从该文本框中聚焦时。回发发生后,页面被定向到自己。然后再次引发加载循环 TextChanged 事件。

TextChanged 也是一个“事件”而不是属性。

于 2012-07-05T14:34:00.543 回答