2013-08-06 38 views
2

一些网络技术,如ASP.NET MVC和任何Web技术,Web窗体,包括使用控件的name属性来识别后台控件,例如读取发布的值。为什么控件ID对ASP.NET Web窗体很重要?

但是,ASP.NET使用控制Id'sPage类实例中创建控件(堆对象)实例。

ASP.NET还使用控件的id属性来做什么?

我依稀记得有一些关于id的动态生成控件的问题。有些冲突或一些这样的。或者一些依赖。我不知道是什么。

为什么id对ASP.NET Web窗体很重要?它是如何使用它们的,除了命名其Page类的属性代表控件?

回答

3

控制id值对于动态创建的控件以及将ViewState数据合并回这些动态创建的控件非常重要。这使得用户看起来刚刚更新页面,实际上控件被重建并且ViewState数据被发回到具有id并且值被配对在一起的服务器,并且最终反弹到控件以显示到用户。

如果重新创建带有不同id值的控件,则ViewState将无法​​正确绑定到控件,并且它会向用户指出页面“重置”,因为更改无法应用于正确的控件。

注意:id值也用于静态创建的控件,但最后id值是ViewState将正确的值放入正确控件的键。

+0

谢谢,卡尔,再次。这非常好,非常有帮助。 –

+0

现在,突然间,也许是因为你的回答,我还记得几年前我处理过的一些事情。我认为挑战在于某些客户端JavaScript代码需要做一些控制(可能是getElementById),这些都是在服务器上动态生成的。 –

+0

@ WaterCoolerv2 - 没问题,很高兴我可以慢跑记忆。 :-) –