我有一个用ASP.NET MVC构建的web应用程序,并在其中使用了同步控制。此外,我正在使用本机iOS构建WebView和安卓应用程序。
我目前面临的问题是,同步控制不能在iOS本机UIWebView上工作,但是它在Android和其他Web浏览器上工作得很好。
错误TypeError: null不是对象(计算't1') getBrowserDetails (ej.web.all.min.js:10:2620892) setWidthToColumns (ej.web.all.min.js:10:2713042) _completeAction (ej.web.all.min.js:10:2705521) sendDataRenderingRequest (ej.web.all.min.js:10:2703872) _renderGridContent (ej.web.all.min.js:10:2684094)呈现(ej.web.all.min.js:10:2674498)_initGridRender (ej.web.all.min.js:10:2664775) _checkDataBinding (ej.web.all.min.js:10:2631224) _init (ej.web.all.min.js:10:2626321) (匿名函数) (ej.web.all.min.js:10:19759) (匿名函数) (ej.web.all.min.js:10:20802) (匿名函数) (actelion-test.pulselinks.com:995)
以上错误仅对具有SyncFusion控件的页抛出。由于该错误页未能在WebView和应用程序中加载所需的脚本,因此无法按预期工作。
我现在的同步脚本ej.web.all.min.js版本是14.2。
如果你让我知道为什么我要克服错误,以及如何解决错误,这将是非常有帮助的?
感谢你的帮助。
发布于 2017-09-25 10:47:46
我们可以看到,当在IOS平台上从Cordova浏览器启动Grid时,您正面临着一些复杂的问题。我们可以通过更改getBrowserDetails的功能来克服这一点,如下面的代码示例所示。
<script>
$(function () {
. ..
var getBrowsedtls = function () {
var b = navigator.userAgent.match(/(firefox|chrome|opera|msie|safari|ipad|iphone|ipod touch|android|)\s?\/?(\d+(.\d+)*)/i);
if (!!navigator.userAgent.match(/Trident\/7\./))
return { browser: "msie", version: $.uaMatch(navigator.userAgent).version };
return { browser: b[1].toLowerCase(), version: b[2] };
};
$("#test").ejGrid({
dataSource: values,
. . . .
showSummary: false,
load: function(args){
this.getBrowserDetails = getBrowsedtls;
},
. . .
});
});
</script>我们已经更改了Grid的load事件中的方法细节。请参考以下API引用。
https://stackoverflow.com/questions/45751438
复制相似问题