我正在阅读教科书“Sams ASP.NET 4释放”,我对ASP.NET TextBox控件的TextChanged属性和AutoPostBack属性之间的区别感到困惑。
这本书解释了两个属性:
AutoPostBack - 允许您发布包含TextBox的表单 TextBox的内容是自动到服务器的 改变。
然后,
TextChanged - 当文本框的内容为时,在服务器上引发 改变。
然后它继续解释:
当AutoPostBack属性的值为True时,表单包含 当TextBox自动发布回服务器时 TextBox的内容发生了变化。如果修改了内容 文本框和Tab键从TextBox控件中移出,表单是自动的 发回服务器,显示TextBox的内容。
让我感到困惑的是这一行:
即使您不使用,也可以处理TextChanged事件 AutoPostBack属性。
那么,两者的Autopostback属性和textchanged属性之间的区别是什么导致页面再次发布到服务器?或者这两种方法的工作是否相互不同?我很困惑。请帮助我更好地理解它。
答案 0 :(得分:4)
即使您不使用AutoPostBack属性,也可以处理TextChanged事件。
是的,那是真的。即使没有立即回发,您也可以在下一次往返服务器上处理TextChanged
事件。
AutoPostBack
设置为true
时,将立即发生回发并且会引发TextChanged事件。AutoPostBack
设置为false
时,您可以在下一次回发时处理该事件(例如,按一下按钮)的Autopostback属性和textchanged属性之间的区别是什么导致页面再次发布到服务器?
所以粗体印刷是完全错误的。 不同之处在于,一个控制回发行为,另一个注册事件处理程序。
答案 1 :(得分:1)
回发完成后会引发TextChanged并指向自己的页面。加载循环后,将引发此事件。这意味着TextChanged在两个回发之间提升。
当文本框的内容发生更改并从此文本框中聚焦时,AutoPostBack属性正在激活回发。发生回发后,页面将被定向到self。然后在Load cycle TextChanged事件被引发之后再次。
TextChanged也是一个'事件'不是财产。