TextBox 的 TextChanged 是如何工作的?

作者:vkvi 来源:ITPOW(原创) 日期:2009-3-13

ASP.NET 的 TextBox 有个 TextChanged 事件,它是如何工作的呢?

首先,ASP.NET 页面输出,此时 TextBox 有个值,如果没有作任何设置, 这个值就是零长度字符串,我们这里把这个值称为“输出值”。

然后,客户端操作后,提交页面,此时 TextBox 又有个值,这个值是客户端操作之后的值,我们这里把这个值称为“回送值”。

如果“输出值”和“回送值”不相同,那么触发 TextChanged。

也许您会问,ASP.NET 页面输出之后,“输出值”并没有保存在服务器端,回送的时候程序怎么仍然能够记住“输出值”呢?

这得依靠于 ViewState,输出的时候除了输出 TextBox,还将 TextBox 的“输出值”记录在一个 Hidden 中,提交的时候,这个 Hidden 也一同被提交了,所以服务器端就可以判断是否有变化了。

如果我们把 TextBox 的 EnableViewState 设置为 false,那么“输出值”就永远都是零长度字符串了,此时只要“回送值”不是零长度字符串,TextChanged 事件就会被触发。

相关文章