与ASP.NET TextBox控件相关的TextChanged属性和AutoPostBack属性之间的区别

时间:2012-07-05 14:06:04

标签: asp.net

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

这本书解释了两个属性:

  

AutoPostBack - 允许您发布包含TextBox的表单   TextBox的内容是自动到服务器的   改变。

然后,

  

TextChanged - 当文本框的内容为时,在服务器上引发   改变。

然后它继续解释:

  

当AutoPostBack属性的值为True时,表单包含   当TextBox自动发布回服务器时   TextBox的内容发生了变化。如果修改了内容   文本框和Tab键从TextBox控件中移出,表单是自动的   发回服务器,显示TextBox的内容。

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

  

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

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

2 个答案:

答案 0 :(得分:4)

  

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

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

  • 因此,当您处理事件并将AutoPostBack设置为true时,将立即发生回发并且会引发TextChanged事件。
  • AutoPostBack设置为false时,您可以在下一次回发时处理该事件(例如,按一下按钮)
  

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

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

答案 1 :(得分:1)

回发完成后会引发TextChanged并指向自己的页面。加载循环后,将引发此事件。这意味着TextChanged在两个回发之间提升。

当文本框的内容发生更改并从此文本框中聚焦时,AutoPostBack属性正在激活回发。发生回发后,页面将被定向到self。然后在Load cycle TextChanged事件被引发之后再次。

TextChanged也是一个'事件'不是财产。