我最近将我的ASP.NET项目更新为.NET 4.5(从3.5)。这导致ClientSideEvents
无法在我的Infrastics UltraWebGrid
上正常启动。
问题是,在我的.aspx文件中,我在UltraWebGrid
上配置了一个客户端事件,如下所示:
<ClientSideEvents ClickCellButtonHandler="webGridSoftwareConfigurations_CellClickHandler" />
在一个js文件中,我有以下内容:
function webGridSoftwareConfigurations_CellClickHandler(gridName, cellId) {
// Do some stuff
}
以前,当我在一个单元格中单击时,javascript函数会被触发。但现在,在.NET 4.5更新之后,什么也没发生。我使用的是Infrasgistics2,Infrasgistics.Web.dll版本11.1.20111.2112
我认为问题的根本原因实际上是ASP.NET 4.x更改了控件id的生成方式。以前,id的前缀是ctl00
,而较旧的Infrastics NetAdvantage控件似乎依赖于此。
我的解决方案是:
首先,将Infrasgistics NetAdvantage更新到最新版本(NetAdvantage 2011)。有更新的版本,但这个版本仍然支持.NET 3.5,我需要它,因为我无法将所有使用Infrastics NetAdvantage的项目更新为.NET 4.5
然后更新web.config
,以便我们使用旧的命名控件的方式:
<configuration>
<system.web>
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" >
感谢这个答案,以及Scott Gu的这篇博客文章。