2013-12-18 83 views
0

使用編輯器彈出窗口(在集合內部)製作網格時遇到一些困難。 我發現一個example這幾乎就像我想要的,但嵌套的網格 ,有一個GridEditMode.InCell,我需要GridEditMode.PopUp。具有嵌套集合,複雜對象的Kendo網格

當我試圖改變CellEditing PopEditing收到以下錯誤: 「的插入數據綁定設置通過插入命令要求請註明在數據綁定配置中的插入動作或網址。」

我想要的整個對象在記錄父對象時被記錄。

@(Html.Kendo().Grid<EmployeeViewModel>() 
.Name("grid") 
.Columns(columns => 
{ 
columns.Command(comm => 
{ 
comm.Edit(); 
}); 
columns.Bound(e => e.EmployeeID); 
columns.Bound(e => e.FirstName); 
columns.Bound(e => e.LastName); 
columns.Bound(e => e.Title);   
columns.Bound(e => e.HireDate).Format("{0:d}"); 
columns.Bound(e => e.Territories) 
.ClientTemplate("#=territoriesTemplate(Territories)#");  
}) 
.Editable(ed=>ed.Mode(GridEditMode.PopUp)) 
.Pageable() 
.Events(ev=>ev.Edit("onEdit")) 
.DataSource(dataSource => dataSource 
.Ajax() 
.PageSize(5)   
.Model(model => 
{ 
model.Id(e => e.EmployeeID); 
model.Field(e => e.EmployeeID).Editable(false); 
model.Field(e => e.Territories).DefaultValue(new List<TerritoryViewModel>()); 
}) 
.Events(ev=>ev.Change("onDsChange")) 
.Read(read => read.Action("Read", "Home")) 
.Update(update => update.Action("Update", "Home").Data("serialize"))) 
) 

這是需要嵌套網格與GridEditMode.PopUp

@(Html.Kendo().Grid<TerritoryViewModel>() 
.Name("TerritoryGrid") 
.Sortable() 
.Columns(cols => 
{ 
cols.Bound(b => b.TerritoryID); 
cols.Bound(b => b.TerritoryDescription); 
}) 
.Editable(ed=>ed.Mode(GridEditMode.InCell)) 
.AutoBind(false) 
.DataSource(ds => ds.Ajax().Model(mo => { 
mo.Id(m => m.TerritoryID); 
mo.Field(f => f.TerritoryID).Editable(false); 
})) 
.ToClientTemplate() 
) 

編輯有什麼辦法?

回答

0

我假設您發現了以下demo並且您想要將其更改爲對嵌套網格使用彈出編輯。可以使網格使用彈出窗口編輯,但嵌套網格將執行單獨的請求。

如果你想實現Popup編輯+批量更新,你將不得不通過JavaScript聲明你的網格,因爲它爲你提供了更多的靈活性。 或者您可以使用this代碼庫中涵蓋的方法實現類似於彈出式編輯+批量更新。

+0

如果我通過javsacript聲明網格可以實現我想要的嗎? 你會有一個例子或者我可以閱讀的例子嗎? 我要檢查您提供的鏈接。 非常感謝 – Gringo

+0

我看到您指向我的代碼庫([link] http://www.kendoui.c​​om/code-library/mvc/grid/external-editing-container-for-batch-editable- grid.aspx)。問題是爲什麼我應該手動設置EyeColorIndex的值?不應該將下拉列表綁定到EyecColorIndex屬性?在該示例中,EyeColorIndex的值在save方法中更改。 (e.model.set(「EyeColorIndex」,val);) e.model.set(「EyeColorIndex」,val); – Gringo