【问题标题】:Infragistics UltraWebGrid client side events broken in .NET 4.5Infragistics UltraWebGrid 客户端事件在 .NET 4.5 中中断
【发布时间】:2013-08-11 11:50:50
【问题描述】:

我最近将我的 ASP.NET 项目更新为 .NET 4.5(从 3.5 开始)。这导致 ClientSideEvents 在我的 Infragistics UltraWebGrid 上无法正常触发。

问题是在我的 .aspx 文件中,我在 UltraWebGrid 上配置了一个客户端事件,如下所示:

<ClientSideEvents ClickCellButtonHandler="webGridSoftwareConfigurations_CellClickHandler" />

在一个 js 文件中,我有以下内容:

function webGridSoftwareConfigurations_CellClickHandler(gridName, cellId) {
    // Do some stuff
}

以前,当我单击单元格时,会触发 javascript 函数。但是现在更新到 .NET 4.5 之后,什么都没有发生。我正在使用 Infragistics2,Infragistics.Web.dll 版本为 11.1.20111.2112

【问题讨论】:

  • .NET 框架版本的更改不应影响此行为。有没有其他变化?页面上是否还有任何 JavaScript 错误?
  • 我刚刚注意到WebAsyncRefreshPanels 在更新到 .NET 4.5 后也出现故障。不是只重新加载面板,而是重新加载整个页面。
  • 再次页面上是否有任何 JavaScript 错误?如果页面上的标记无效(例如,如果您有未关闭的打开标签),WebAsyncRefreshPanel 也可能会失败。
  • 我已经更新了我的项目以使用 NetAdvantage 2011(适用于 .NET 3.5),现在 WebAsyncRefreshPanels 可以正常工作。我没有收到任何 javascript 错误,但奇怪的是,在调试(在 Visual Studio 中捕获)时,我得到了一个 javascript 异常(源自一些基础代码)。我发现这与 .NET 4x 中 asp 控件的命名方式有关,并在这里找到了我的问题的解决方案stackoverflow.com/questions/4437717/…

标签: .net-4.5 infragistics asp.net-4.5 ultrawebgrid


【解决方案1】:

我认为我的问题的根源实际上是由于 ASP.NET 4.x 改变了控件 ID 的生成方式。以前,ID 以 ctl00 为前缀,而较旧的 Infragistics NetAdvantage 控件似乎依赖于此。

我的解决方案是:

首先,将 Infragistics NetAdvantage 更新到更新的版本 (NetAdvantage 2011)。有更新的版本,但这个仍然支持 .NET 3.5,我需要这个,因为我无法将所有使用 Infragistics NetAdvantage 的项目更新到 .NET 4.5

然后更新web.config,让我们使用旧的方式命名控件:

<configuration>
    <system.web>
        <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" >

感谢 this 的回答,以及 Scott Gu 的 this 博文。

【讨论】:

    猜你喜欢
    • 2015-04-24
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 2011-06-30
    • 2010-09-26
    • 2017-12-24
    • 2010-10-17
    相关资源
    最近更新 更多