【问题标题】:Dynamically loading a view, telerik mvc动态加载视图,telerik mvc
【发布时间】:2012-05-23 19:58:47
【问题描述】:

我正在尝试使用$.ajax() 加载页面。 我通过以下操作查看 personIndexCreateDeleteCreate 页面有一个Telerik MVC 网格。 当我在页面 Indexload 页面 Create 使用 ajax 调用 替换当前页面的内容。 页面已完全加载,但网格不起作用$('#gridname').data('tGrid') 返回 undefined

javascript 代码示例。

$.ajax({
    url: '/Person/Create',
    contentType: 'application/html; charset=utf-8',
    type: 'GET',
    dataType: 'html',
    cache: false,
    success: function (data) {
        $('#main').html($(data).fadeIn(fade));
    }
});

谢谢

【问题讨论】:

  • 如果你在 devtools 中查看,你能在 HTML 中看到gridName 的存在吗?
  • 是的,名字就在那里,当页面“创建”加载时,“数据网格”工作得很好,但是当通过 ajax 调用加载时,不是

标签: javascript jquery asp.net-mvc telerik telerik-mvc


【解决方案1】:

我多次遇到这个问题。问题是,当呈现局部视图上的 Telerik 控件时,它会添加一个 script 标记,其中包含初始化控件所需的 JavaScript。如果你使用$.ajax,jQuery 会去掉 script 标记。请尝试以下操作:

$('#main').load('/Person/Create');

jQuery.load 不会串出script 标签。

编辑:

看起来它不仅仅是load。 Telerik 在这里有一篇关于它的文章:

http://www.telerik.com/help/aspnet-mvc/using-with-partial-views-loaded-via-ajax.html

基本上,您需要确保页面中引用了 Telerik 脚本(因为它们不会被自动添加)并且您必须使用 ajax 来绑定数据。

【讨论】:

  • 当 Grid 在页面上呈现时,Telerik 将 javascript 添加到 jQuery(document).ready() 函数以创建 $('#Grid').data('tGrid') 对象。这就是问题所在,我无法获取数据('tGrid')。 tks
  • 那么,您是否尝试过使用jQuery.load
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多