Hi
I am trying to put together a master/detail grid where both the master and detail grid has foreign key columns. The two grids work normally with the foreign key columns when they are on their own, but once I put them together, I have an "invalid template" error.
Here's my razor view of the master/detail grid.
@(Html.Kendo().Grid<EMD.DAL.Domain.Attribute.AssetSubType>()
.Name("subTypeGrid")
.Columns(columns =>
{
columns.Bound(c => c.AssetSubTypeID).Width(50);
columns.ForeignKey(c => c.AssetTypeID, (System.Collections.IEnumerable)ViewData["assetTypes"], "AssetTypeID", "Type").Width(200);
columns.Bound(c => c.SubType).Width(300);
columns.Bound(c => c.Description).Width(300);
columns.Bound(c => c.ProductTypeID).Width(100).Hidden();
columns.Bound(c => c.PhysicalItem).Width(100).Hidden();
columns.Bound(c => c.LastModified).Hidden();
columns.Bound(c => c.LastModifiedBy).Hidden();
columns.Command(command => { command.Edit(); command.Destroy(); }).Width(180);
})
.ToolBar(toolbar =>
{
toolbar.Create();
})
.ColumnMenu()
.Editable(editable => editable.Mode(GridEditMode.InLine))
.Pageable()
.Reorderable(reorder => reorder.Columns(true))
.Navigatable()
.Selectable()
.Groupable()
.Resizable(resize => resize.Columns(true))
.Sortable(sortable =>
{
sortable.SortMode(GridSortMode.MultipleColumn);
})
.Filterable(filterable => filterable.Mode(GridFilterMode.Menu))
.Scrollable()
.ClientDetailTemplateId("template")
.HtmlAttributes(new { style = "height:800px;" })
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(15)
.Events(events => events.Error("grid_error")) // Handle the "error" event
.Model(model => model.Id(p => p.AssetSubTypeID))
.Read(read => read.Action("AssetSubTypes_Read", "AssetAttribute"))
.Create(create => create.Action("AssetSubTypes_Create", "AssetAttribute"))
.Update(update => update.Action("AssetSubTypes_Update", "AssetAttribute"))
.Destroy(destroy => destroy.Action("AssetSubTypes_Destroy", "AssetAttribute"))
)
//.Events(events => events.DataBound("dataBound"))
)
</div>
<script id="template" type="text/kendo-tmpl">
@(Html.Kendo().Grid<EMD.DAL.Domain.Attribute.SubTypeAttribute>()
.Name("attributeGrid_#=AssetSubTypeID#")
.Columns(columns =>
{
columns.Bound(c => c.SubTypeAttributeID).Hidden();
columns.Bound(c => c.AssetSubTypeID).Hidden();
columns.Bound(c => c.AttributeValueID);
//columns.ForeignKey(c => c.AttributeValueID, (System.Collections.IEnumerable)ViewData["attributes"], "AttributeValueID", "Attribute").Title("Attribute").Width(200);
columns.Bound(c => c.DefaultValue);
columns.Bound(c => c.Description);
columns.Bound(c => c.LastModified).Hidden();
columns.Bound(c => c.LastModifiedBy).Hidden();
columns.Command(command => { command.Edit(); command.Destroy(); }).Width(180);
})
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(5)
.Model(model => model.Id(p => p.SubTypeAttributeID))
.Read(read => read.Action("SubTypeAttributes_Read", "AssetAttribute", new { assetSubTypeID = "#=AssetSubTypeID#" }))
.Update(update => update.Action("SubTypeAttributes_Update", "AssetAttribute"))
.Create(update => update.Action("SubTypeAttributes_Create", "AssetAttribute").Data("onAddSubItem"))
.Destroy(update => update.Action("SubTypeAttributes_Destroy", "AssetAttribute"))
)
.ToolBar(toolbar =>
{
toolbar.Create().HtmlAttributes((new { onclick = "setMasterSubTypeID(this, #=AssetSubTypeID#)" }));
//toolbar.Excel();
})
.Editable()
.ColumnMenu()
.Sortable()
.Scrollable()
.Resizable(resize => resize.Columns(true))
.Filterable(filterable => filterable.Mode(GridFilterMode.Menu))
.Editable(editable => editable.Mode(GridEditMode.InLine))
.ToClientTemplate()
)
</script>
Funny thing is if I comment out the foreignkeycolumn on the detail grid (columns.ForeignKey(c => c.AttributeValueID,
(System.Collections.IEnumerable)ViewData["attributes"],
"AttributeValueID", "Attribute").Title("Attribute").Width(200);), and change it to bound. Everything works.
After searching various forums and making sure there is no spacing in field names and "encoder Type" is not defined in Web.config (http://www.telerik.com/forums/master-details-grid-not-working). I cannot get the grid to work.
I may be missing something very trivial but I just can't figure out why the grids work on their own but not when they are together.
Appreciate any thoughts.