2016-06-03 3 views
0

다음은 Kendo Grid 용 PartialView입니다. 현재로서는 내 Parts_Read 작업이 호출되지 않습니다. 하지만, 내가 코멘트하면오류 이벤트 처리로 인해 읽기가 호출되지 않습니다.

.Events(events => events.Error("error_handler")) 

모든 것이 잘 작동합니다. 왜 이런 일이 일어 났는지에 대한 아이디어가 있습니까?

@using Kendo.Mvc.UI; 
@using eRPortalDashboard.Models 

@model PMPartsViewModel 

@{ 
int PMNumber = Model.PMNumber; 
string uniqueName = Model.PartsGrid.ID;//Regex.Replace(Guid.NewGuid().ToString(), "[^A-Za-z]+", ""); 
bool enableToolbar = Model.PartsGrid.EnableToolbar; 
bool enablePageable = Model.PartsGrid.Pageable; 
bool enableSortable = Model.PartsGrid.Sortable; 
bool enableColumnMenu = Model.PartsGrid.EnableColumnMenu; 
bool enableGroupable = Model.PartsGrid.Groupable; 
bool enableColumnResizing = Model.PartsGrid.AllowColumnResizing; 
bool enableScrolling = Model.PartsGrid.Scrollable; 
bool enableSelection = Model.PartsGrid.Selectable; 
} 

@(Html.Kendo().Grid<PartViewModel>() 
.Name(uniqueName) 
.Columns(columns => 
{ 
    columns.Bound(c => c.ItemNumber); 
    columns.Bound(c => c.Description); 
}) 
    .ToolBar(toolBar => 
    { 
     toolBar.Custom().Text("Test Button").Url("#").HtmlAttributes(new { id = "testButton" }); 
    }) 
.Pageable(pager => pager 
    .Input(false) //Using pageable.numeric and pageable.input at the same time is not recommended. 
    .Numeric(true) 
    .Info(true) 
    .PreviousNext(true) 
    .Refresh(true) 
    .PageSizes(new object[] { 5, 10, 20, 50, "all" }) 
    .Enabled(enablePageable) 
) 
.Selectable(s => s.Mode(mode: GridSelectionMode.Multiple).Enabled(enableSelection)) 
.AllowCopy(enableSelection) //selectable needs to be enabled and set to multiple 
.Sortable(s => s.SortMode(GridSortMode.MultipleColumn).Enabled(enableSortable)) 
.ColumnMenu(c => c.Enabled(enableColumnMenu)) 
.Groupable(g => g.Enabled(enableGroupable)) 
.Scrollable(s => s.Height("auto").Enabled(enableScrolling)) 
.Resizable(resize => resize.Columns(enableColumnResizing)) 
    //.Events(events => events.DataBound(uniqueName + "_updateGrid").Change(uniqueName + "_updateGrid")) 
.DataSource(dataSource => dataSource 
    .Ajax() 
    .ServerOperation(true) 
     .Events(events => events.Error("error_handler"))   
    .Read("Parts_Read", "PM", new { PMNumber = PMNumber }) 

) 
) 


<script type="text/javascript"> 
function error_handler(e) { 
    if (e.errors) { 
     var message = "Errors:\n"; 
     $.each(e.errors, function (key, value) { 
      if ('errors' in value) { 
       $.each(value.errors, function() { 
        message += this + "\n"; 
       }); 
      } 
     }); 
     alert(message); 
    } 
} 

+1

콘솔에 아무 것도 표시되지 않습니까? – whipdancer

답변

0

내 문제의 주요 핵심은 error_handler함으로써 방법에 바인딩하는 것이없는 만들고, 내 MVC 코드 후 발표했다는 사실이었다.

Kendo (어쩌면 다른 사람)와 함께 Partial Views를 사용할 때 javascript 함수는 해당 뷰의 Razor 구문에서 사용되기 전에 선언되어야합니다.

다음을 참조하십시오.

관련 문제