【问题标题】:Why are control id's important to ASP.NET Web Forms?为什么控件 ID 对 ASP.NET Web 窗体很重要?
【发布时间】:2013-08-06 15:34:55
【问题描述】:

一些 Web 技术,例如 ASP.NET MVC 和任何 Web 技术、Web 窗体,包括使用控件的 name 属性来识别回发中的控件,例如读取发布的值。

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

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

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

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

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    控件id 的值对于动态创建的控件以及将ViewState 数据合并回这些动态创建的控件至关重要。这让用户觉得页面刚刚更新,而实际上控件已重建,ViewState 数据被发送回服务器,该服务器将id 和值配对在一起,最后反弹到控件显示给用户。

    如果您使用不同的id 值重新创建控件,则ViewState 将无法正确绑定到控件,并且它会向用户显示页面“重置”,因为无法应用更改适当的控制。

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

    【讨论】:

    • 再次感谢您,卡尔。这非常好,非常有帮助。
    • 现在,突然间,也许是因为你的回答,我对我几年前处理过的事情有了更多的记忆。我认为挑战在于一些客户端 JavaScript 代码需要对在服务器上动态生成的控件(可能是 getElementById)做一些事情。
    • @WaterCoolrv2 - 没问题,很高兴我能唤起你的记忆。 :-)
    猜你喜欢
    • 2014-06-05
    • 1970-01-01
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    相关资源
    最近更新 更多