【发布时间】:2016-06-14 19:01:54
【问题描述】:
我有一个 Kendo 网格,它的 Events 属性与外部 javascript 文件中的函数 (Grid_OnRowSelect) 挂钩。外部 javascript 文件中还有其他功能(例如 on button click * $("#btnS").on('click', function () {....* )和其他一些功能。 Grid_OnRowSelect 函数和其他函数使用公共变量集。如何将变量从所有函数都可以访问的视图 (cshtml) 传递到外部 javascript 文件。
@(Html.Kendo().Grid<MyModel>()
.Name("rGrid")
.Events(events => events.Change("Grid_OnRowSelect"))
.Columns(columns =>
{
columns.Command(command =>
.......
.......
.......
外部js文件是
var MYFunc = MYFunc || (function () {
var _args = {}; // private
return {
init: function (Args) {
_args = Args;
// some other initialising
},
helloWorld: function () {
alert('Hello World! -' + _args[0]);
},
Grid_OnRowSelect: function (e) {
var data = this.dataItem(this.select());
detailRequestID = data.ID;
var url = _args[1] + "/" + detailRequestID;
window.location.href = url;
},
onError: function (e, status) {
//alert("A server error has occurred!");
var url = _args[2];
window.location.href = url;
}
};
}());
我如何尝试传递参数
<script>
window.onload = function(){
var searchUrl = @Url.Action("Search");
var updateUrl = @Url.Action("Update");
var errorUrl = @Url.Action("ServerError", "Error");
};
MYFunc.init([searchUrl, updateUrl, errorUrl]);</script><script src="~/Scripts/Index.js"></script>
但是当 Grid_OnRowSelect 或任何函数被执行时,_args 是未定义的。什么不正确?
谢谢。
【问题讨论】:
标签: javascript jquery kendo-ui kendo-asp.net-mvc external-js