0

Есть ли правильный способ чтения события Kendo из внешнего файла сценария java?Внешний файл Javascript, имеющий события для сетки Kendo

На мой взгляд, .cshtml

@(Html.Kendo().Grid<Model>() 
     .Name("EmployeeGrid") 
     .Columns(cols => { }) 
     .Events(evt => evt.DataBound("afterGridLoaded")) 
     .DataSource(dataSource => dataSource.Ajax() 
            .Batch(true) 
            .PageSize(10) 
            .Read(read => read.Action("GetEmployeeList", "EmployeeDetail")) 
            ) 
    ) 

"afterGridLoaded" сидит во внешнем Java-скрипт, который загружается в верхней части страницы.

Внешний Java Script File -

$(function() { 
    function afterGridLoaded(e) { 
    $(".k-button.xxx").click(function() { 
    debugger; 
    var idEmployee = $(this).attr('tag'); 
    myJsFunc(idEmployee); 
    }); 
    } 
}); 

И путь сценарий Java называется - Это делается в верхней части страницы

@section scripts 
{ 
    <script src="~/Scripts/Views/EmployeeDetail/EmployeeList.js" ></script>  
} 

Внешний Java файл сценария загружается, как я могу видеть на инструментах DEV в хроме под вкладкой сети,

External java script loaded

При попытке загрузить страницу, я получаю следующее сообщение об ошибке на консоли, которая предотвращает загрузку страницы дальше,

Error message

Есть ли способ, чтобы получить кендо события для работы используя внешний файл сценария java?

ответ

3

Проблема заключается в том, что ваша функция afterGridLoaded обернута вокруг jQuery Функция закрытия, что означает, что вы не можете вызвать ее из-за закрытия.

Снимите закрытия и переместить тег сценария в нижней части страницы

// $(function() { get rid of this 
function afterGridLoaded(e) { 
    $(".k-button.xxx").click(function() { 
     debugger; 
     var idEmployee = $(this).attr('tag'); 
     myJsFunc(idEmployee); 
    }); 
} 
//}); and this 
+0

Спасибо за помощь @dcodesmith –

Смежные вопросы