1

我有几个 Telerik 的 DropDownList 控件,它们在 jQuery 对话框中呈现

它是一个“单页”ASP>NET MVC 应用程序,所以我有一个带有记录的网格,每次用户双击网格程序时都会显示 jQuery 对话框,该对话框使用 Ajax 调用控制器来呈现此对话框窗口和所有 Telerik 控件的部分视图绑定到模型属性。

当我第一次调用 jQuery 对话框时,一切正常

当我第二次调用 jQuery 对话框时,对话框打开,与模型的绑定发生得很好,但所有 DropDownList 控件似乎都被禁用了。我试图从 jScript 调用 enable() - 它没有帮助。

DatePicker 控件也会出现同样的问题,尽管在 DatePicker 中我可以手动编辑日期(在文本区域内)但无法显示日历选择器

因此,在此对话框内的 jQuery 对话框 Telerik MVC 控件的第二次调用之后,似乎失去了显示任何弹出 div 的能力(Telerik 的 DropDownList 和 DatePicker 类似,它们需要显示带有项目列表或日历的浮动 DIV单击箭头或日历图标),但在可编辑区域手动编辑文本仍然有效。

该问题似乎与http://www.telerik.com/community/forums/aspnet-ajax/editor/radeditor-and-jquery-dialog.aspx非常相似, 建议在对话后使用 onParentNodeChanged()( '打开')方法。但是onParentNodeChanged在 Telerik ASP.NET MVC Extnetions 中不存在,它是 Telerik Rad (ASP.NET AJAX) 控件的一部分,我不能从 jScript 调用它

有任何想法吗?

4

2 回答 2

3

使用 ajax 添加部分视图时,我遇到了类似的问题。当我加载视图时,控件似乎正确加载,但它们没有附加到 Telerik 脚本,所以我需要在渲染后触发它们。下面的代码示例:

//Action AddItem returns partial view which contains some standard inputs and telerik    date pickers
@Html.ActionLink("Add item", "AddItem", null, new { @class = "addNewItem" })

<div id=itemRows></div>

<script>
$(".addNewItem").click(function () {
    $.ajax({
        url: this.href,
        cache: false,
        success: function (html) {
            $("#itemRows").append(html);
        }
    });
    //I need to trigger all the datepickers to enable them (so I give datepicker class dateTime)
    $(".dateTime").tDatePicker({ format: 'd.M.yyyy' });
    return false;
});
</script>

尝试使用 datepicker,看看它是否有效,相同的逻辑应该适用于下拉菜单。

于 2012-05-08T10:21:04.013 回答
1

autoOpen我们在设置为 false的 TinyMCE 和 Dialog 中遇到了这个问题。对我们有用的修复是使用对话框的open事件,如下所示:

$(element).dialog({ 
   // some more options...
   open: function (type, data) {
       $(this).parent().appendTo($("form:first"));
    }
});
于 2012-05-04T13:30:58.370 回答