2016-12-28 42 views
0

我有一個kendo數據網格按列分組,默認情況下,我想編輯內聯網格。我不希望用戶按任何其他列進行分組。雖然默認分組工作正常,但更新事件不會被觸發,控件也不會執行控制器的內聯更新方法。你能檢查我要去哪裏嗎?下面是代碼:kendo datagrid更新事件不會在列上分組時觸發

@(Html.Kendo().Grid(Model) 
    .Name("grdTimesheets") 
    .Columns(columns => 
    { 
     columns.Bound(p => p.EmployeeId).Hidden(true); 
     columns.Bound(p => p.FirstName); 
     columns.Bound(p => p.Monday.Hour).Title("Monday") 
      .EditorTemplateName("TimesheetMonday"); 
     columns.Command(command => 
     { 
      command.Edit(); 
      command.Destroy(); 
      command.Custom("Add").Text(" ").Click("AddNewTimesheet"); 
     }); 
    }) 
    .Editable(editable => editable.Mode(GridEditMode.InLine)) 
    .Pageable() 
    .Sortable() 
    .Groupable(false) 
    .Scrollable() 
    .DataSource(dataSource => dataSource 
     .Ajax() 
     .Model(model => 
     { 
      model.Id(p => p.EmployeeId); 
      model.Field(p => p.FirstName).Editable(false); 
     }) 
     .PageSize(20) 
     .Update(update => update.Action("EditingInline_Update", "Timesheet")) 
     .Destroy(destroy => destroy.Action("EditingInline_Destroy", "Timesheet")) 
     .Group(d=>d.Add(f=>f.FirstName)) 
    ) 

如果我註釋掉最後一行 「集團(d => d.Add(F => f.FirstName))」,一切工作正常,但默認分組熄滅。

回答

0

我知道它的答案有點晚,但我會在這裏留下這個情況,以防其他人遇到同樣的問題。一旦按任意列分組,網格將不會觸發「.Update(update => update.Action(」EditingInline_Update「,」Timesheet「))」。爲了解決這個問題,您需要爲網格添加OnEditEvent,並在javascript函數中添加一個事件到文本框/下拉列表或任何您擁有的控件。下面的示例:

.Events(事件=> events.Edit( 「grid_edit」)),這是在視圖

的javascript:

function grid_edit(e) { 
    var grid = $('#grid').data('kendoGrid'); 
    var cell = e.container; 
    var area = cell.find("textarea") 

    area.on("blur", function() { 
     // update ur entries here 
     var areaVal = cell.find("textarea").val(); // this is the new value 
     // call some ajax to update the value and in the success call grid.dataSource.sync(); to refresh the grid 
    });} 

你也將需要刪除您.Update( )的數據源,因爲它不再需要。

相關問題