Telerik Extensions和Kendo MVC javascript无法正常工作

时间:2012-06-22 16:15:20

标签: jquery telerik telerik-mvc kendo-ui

还有其他人有这个问题吗?

根据所有文档,您应该能够使用以下代码访问任何Telerik Extensions或Kendo控件的数据

var data = $('#id').data('tControlType')

但是,我从未真正使用此代码。无论我做什么,“data”函数总是返回undefined。控件实际上正常工作,我能够通过其他几种方式获取控件数据,例如通过任何事件处理程序的event.sender,但数据函数不起作用。

我正在使用Telerik Script Registrar在我的页面中包含jQuery和其他脚本。目前看起来像这样:

@{Html.Telerik().ScriptRegistrar().jQuery(true).jQueryValidation(true)
    .Globalization(true).DefaultGroup(group => group
        .Add("~/Scripts/jquery-ui-1.8.11.js")
        .Add("~/Scripts/jquery.ui.touch-punch.js")
        .Add("~/Scripts/jquery.unobtrusive-ajax.js")
        .Add("~/Scripts/bootstrap-tab.js")
        .Add("~/Scripts/bootstrap-dropdown.js")
        .Add("~/Scripts/kendo/kendo.web.js")
        .Add("~/Scripts/kendo/kendo.aspnetmvc.js")
        .Add("~/Scripts/ui.watermark/ui.watermark.js")
        .Add("~/Scripts/date.js")
        .Add("~/Scripts/jquery.blockUI.js")
        .Add("~/Scripts/jquery.ba-bbq.js")}

看起来Telerik正在使用jQuery 1.7.1,因为这就是Telerik Scripts文件夹中的内容。 Telerik版本是2012.1.214,我也使用了剑道测试版,虽然在我加入剑道之前遇到了同样的问题。 ScriptRegistrar目前位于< HEAD>标签,因为剑道需要它,虽然我也试过把它放在< BODY>结束之前。标签为Telerik Extensions建议无效。我还确认IE,Firefox,Opera,Safari和Chrome中存在问题。

因为我正在使用Telerik Script Registrar来包含所有Telerik& amp; jQuery相关的脚本,我有点期望这应该“正常工作”。还有什么我可能做错了?

编辑:这是一个例子:

@(Html.Telerik().NumericTextBox().Name("NumericTextBox"))

<script type="text/javascript">
$(function() {        
    var data = $("#NumericTextBox").data("tTextBox");
    alert(data); //displays "undefined"
});
</script>

2 个答案:

答案 0 :(得分:1)

确保jQuery JavaScript不会包含多次。除非设置ScriptRegistrar,否则jQuery(false)将自动包含一个。{/ p>

答案 1 :(得分:0)

我认为问题是当您尝试访问该值时,该对象尚未在DOM上。尝试访问处理程序上的值(可能是按钮单击),看看它是否有效。除此之外一切似乎都没问题