【问题标题】:telerik controls empty string passed to getelementbyid()Telerik 控制传递给 getelementbyid() 的空字符串
【发布时间】:2015-04-24 12:33:27
【问题描述】:

我继承了一个广泛使用 Telerik 控件的网络应用程序。

一些页面在 AJAX 调用上相当繁重,通常在您选择组合项目时设置一些默认值(例如,选择一家公司,填写运输地址)。

一天前,这产生了一种奇怪的行为。第一个 ajax 调用会起作用,随后的调用不会。不管你做什么。第一个有效。

查看浏览器控制台,您会在页面加载期间看到以下内容

TypeError: n is undefined

此外,通过调用任何 ajax 调用,您将看到类似这样的消息

TypeError: n is undefined   (source script resource ... axd file)
TypeError: Empty string passed to getElementById()   (source jquery.js)
TypeError: b is null   (source script resource ... axd file)

我尝试设置断点并回顾调用链以查看哪些控件产生了这个。不是很有生产力。

正如我上面提到的,只有第一个电话有效。随后的通话中断。关于为什么有任何帮助?

【问题讨论】:

  • 这是一个问题?还是给用户的信息?
  • 抱歉,以危险的方式提出这个问题并在下面回答。

标签: jquery .net vb.net telerik


【解决方案1】:

希望这可以节省一些时间。

页面上有一些我们不再需要的控件。我将它们评论出来,以便下周当 w 改变主意时我们可以“让它们回来”。

我碰巧使用了一个简单的 HTML 注释,而不是 .NET/VB 注释

我相信正在发生的事情是这样的。后面的代码还是知道控件的。我可以验证这一点,因为它在代码中被引用而不是抱怨。

服务器端,Telerik 呈现 JS 代码以将事件处理程序分配给所有控件。客户端,因为控件实际上并不像预期的那样存在,所以 JS 调用没有按预期工作。公平地说,Telerik 没有实用的方法来预测页面最终会是什么样子。客户端,他们可以在拨打电话之前检查是否存在。

使用 VB 注释,然后注释掉引用代码,或删除控件,:-) 然后删除引用代码都可以解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-23
    • 1970-01-01
    • 2017-02-01
    • 1970-01-01
    • 2012-05-30
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多