2014-07-19 2 views
0

내 그리드는 다음과 같이 만들 수 있습니다 :검도 그리드 발생하지 않습니다 푸시 이벤트

@(Html.Kendo().Grid<MyProject.Models.DataObjects.MyObject>() 
     .Name("my-object-grid") 
     .Columns(columns => 
     { 
      columns.Bound(p => p.ID).Hidden(); 
      columns.Bound(p => p.Name).Width(300); 
      columns.Command(command => 
      { 
       command.Edit().Text("Modify") 
        .UpdateText("Save") 
        .CancelText("Cancel") 
        .HtmlAttributes(new { style = "width:90px;height:30px;font-size:12px;" }); 
       command.Destroy().Text("Delete").HtmlAttributes(new { style = "width:90px;height:30px;font-size:12px;" }); 
      }).Width(220); 
     }) 
     .ToolBar(toolbar => toolbar.Create().Text("Add").HtmlAttributes(new { style = "width:120px;height:30px;float:left;" })) 
     .Editable(editable => editable.Mode(GridEditMode.PopUp) 
     .Window(win => win.Title("MyObject")).TemplateName("MyObject")) 
     .Pageable() 
     .Sortable() 
     .Scrollable() 
     .Filterable() 
     .HtmlAttributes(new { style = "height:430px;" }) 
     .DataSource(dataSource => dataSource 
      .Ajax() 
      .PageSize(10) 
      .Model(model => 
      { 
       model.Id(p => p.ID); 
      }) 
      .Create(update => update.Action("MyObject_Create", "MyObject")) 
      .Read(read => read.Action("MyObject_Read", "MyObject")) 
      .Update(update => update.Action("MyObject_Update", "MyObject")) 
      .Destroy(update => update.Action("MyObject_Delete", "MyObject")) 
        .Events(evt => evt.Push("myObjectGridDataSource_push").Error("myObjectGridDataSource_error")) 
     ) 
) 

그리고 foolwingo의 javacript 핸들러는 이후에 정의됩니다 도우미에 의해 생성

<script type="text/javascript"> 

function myObjectGridDataSource_push(e) { 
    alert(e.type); 
} 

function myObjectGridDataSource_error(e) { 
    alert(e.status); 
} 
</script> 

자바 스크립트 괜찮아 보이지만 그리드의 일부 항목을 추가/편집/제거 할 때 이벤트 처리기가 실행되지 않습니다. 그러나 컨트롤러에 대한 요청은 정상적으로 작동합니다.

격자 (팝업 사용)의 편집 모드와 관련이 있습니까? 내가 잘못하고있는 것을 찾을 수 없습니다 ...

답변

2

푸시 알림을 설정하는 dataSource 전송 초기화 중에 푸시가 호출됩니다. 데이터 소스는이 함수를 한 번만 호출하고 밀어 넣기 알림 (서버에서 푸시 된 데이터)을 처리하는 콜백을 제공합니다.

Push event Detailed information

당신이 정확하게 당신이 그때는 좀 더 도움이 될 수 있습니다 달성하기 위해 노력하고있는 것을 알 수 있습니다합니다. 또한 레코드 id가 유추되거나 삽입되거나 삭제되기 전에 이벤트를 포착하려면 푸시하지 마십시오. 그리드의 동기화 이벤트를 구현해야합니다.

+0

좋아요, 나는 푸시 이벤트가 무엇인지에 대해 오해했습니다. 내가 필요한 것은 새로운 객체를 생성하고 성공적으로 생성 될 때, 새로 생성 된 객체의 ID가'MyObject_Create()'메소드에 의해 반환되고이 ID를 얻고 사용자를 다른 페이지 기반으로 리디렉션하고 싶습니다. 이드는. 응답을 얻을 수있는 이벤트가 있습니까? 이걸로 나를 도울 수 있니? 미리 감사드립니다! – amp

+0

그리드에 dataBinding 이벤트를 구현하고 거기에서 새로 생성 된 객체를 캡처해야합니다. –

+0

하지만 정렬, 페이징을 할 때 데이터 바인딩이 시작됩니다 ... ID가없는 경우 어떻게 새롭게 생성 된 개체를 검색 할 수 있습니까? – amp