我在我的MVC应用程序中使用Kendo Grid。 Grid有一个Command列,其中包含一个自定义按钮,用于调用Javascript函数,该函数向服务器发送ajax请求以获取部分视图以替换#AjaxDiv innerHtml
,如下所示:
function BrandDetailView(e) {
var dataItem = this.dataItem($(e.target).closest("tr"));
var brandID = dataItem.PKBrand;
var xmlhttp;
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("AjaxDiv").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "/Brand/Details/" + brandID, true);
xmlhttp.send()
}
详细信息部分视图包含Kendo DropDownList,用于在其包含div
的内部生成脚本。如果我向服务器发送请求如上所述,这些脚本将不起作用,但如果我在下面创建Ajax.ActionLink()
,它们将起作用。
@Ajax.ActionLink("Detail", "Details", new { id = 2 }, new AjaxOptions()
{
UpdateTargetId="AjaxDiv",
HttpMethod="GET",
InsertionMode=InsertionMode.Replace
})
我坚持使用Grid上的Detail按钮,任何解决方案如何以这种方式呈现脚本?
答案 0 :(得分:1)
如果你通过innerHTML添加到你的页面的内容中有一个脚本,它就不会执行,一个可能的解决方案是派生这些脚本标签并通过Javascript再次添加到你的页面,这样他们就可以了执行这个时间。