我在 ASP.NET 页面上有一个 JavaScript 函数,当在网格标题中选中“检查全部”复选框时,它将检查客户端网格中的所有框。它通过在 JS 函数中为循环中的每一行构造实际的控件 ID(即 + '_ ctl' + i + ' ' + 其中 i 是当前循环的行索引)然后将生成的控件设置为检查。
这已经工作了很长时间,但现在它已经停止工作,原因是 .NET 渲染引擎或创建内部控件 ID 的任何东西不同。例如,当在另一台服务器上查看页面源时,该页面仍在正常工作,控件名称为dgMain__ctl2_cbxChecked,但不工作的服务器上的控件名称为dgMain__ctl02_cbxChecked。不同之处在于,在不工作的版本的“ctl”部分的数字 ID 前面有一个额外的“ 0 ”。
我想知道这是否与.NET 的版本有关?它不能在我相对较新的本地机器上运行(用于在旧机器上运行),但它仍然可以在部署在生产环境中的旧服务器上运行。两个版本都运行 ASP.NET 1.1(是的,我知道 - 与时俱进)。
关于如何解决这个问题的任何线索?