2012-07-05 75 views
0

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

该书介绍了这两个属性:

的AutoPostBack - 使您能够自动发布包含文本框后面 到服务器时,文本框的内容是 改变形式。

然后,

在服务器上框TextChanged募集当文本框的内容是 改变。

然后继续解释:

当AutoPostBack属性的值为true,含 形式的文本框会自动回发到服务器时的文本框的变化 内容。如果修改 文本框的内容并将其从TextBox控件中取出,表单会自动返回到服务器 ,并显示TextBox的内容。

该行迷惑我,这是一个:

你甚至可以处理TextChanged事件,当你不使用 AutoPostBack属性。

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

回答

4

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

是的,的确如此。即使不立即回发,您也可以在服务器的下一次往返中处理TextChanged事件。

  • 所以,当你处理该事件,并AutoPostBack设置为true,回传将会立即发生和框TextChanged事件引发。
  • AutoPostBack设置为false,你反正可以在下一回发处理事件(FE按钮点击)

是什么AutoPostBack属性之间和框TextChanged财产双方的差异导致页面要再次发布到服务器

所以大胆印刷是完全错误的。 区别在于,它控制回发行为,其他注册事件处理程序。

1

回发完成后,TextChanged将被引发到自页面。加载循环后,引发此事件。这意味着TextChanged在两次回发之间引发。

AutoPostBack属性激活回发,当文本框的内容被改变并从该文本框中聚焦出来时。在发生回发之后,页面被定向到自我。然后再次发生Load循环TextChanged事件后。

另外TextChanged是'事件'不属性。

0

?什么是错误的最初检查为什么“Page_Load()”被称为(再次或不) 在“Page_Load()”为什么不测试像: ================ ======= =====

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { /* 'saying' - if 1st time through Page_Load() */ 

    } 
    else 
    { /* = 'saying' else reason is more common Page being Post-ed to SERVER */ 

    } 
} /* end method 'Page_Load()' */ 

========== ============ ==========================

相关问题