Hi!
I am building a Master-Detail with KendoGrids.
My problem is that when I create a new record in the Detail Grid I want the DefaultValue of the ForeignKey column to be set with the value of the PrimaryKey of the Master Grid.
My Grids are the following:
Master
Detail (the column I want is in bold)
Thanx in advance
I am building a Master-Detail with KendoGrids.
My problem is that when I create a new record in the Detail Grid I want the DefaultValue of the ForeignKey column to be set with the value of the PrimaryKey of the Master Grid.
My Grids are the following:
Master
@(Html.Kendo().Grid<
ModelApp.Models.Tickets
>()
.Name("ticketgrid")
.Columns(columns =>
{
columns.Bound(p => p.TicketID).Title("ID").Width(100);
columns.ForeignKey(p => p.CustomerID, (System.Collections.IEnumerable)ViewData["customers"], "CustomerID", "CustomerName").Title("Customer").Width(200) ;
columns.ForeignKey(p => p.AreaOfBusinessID, (System.Collections.IEnumerable)ViewData["areaofbusinesses"], "AreaOfBusinessID", "AreaOfBusiness1").Title("AreaOfBusiness").Width(100);
columns.Bound(p => p.OccurredOn).Title("Occured").Format("{0:yyyy-MM-dd}").Width(150);
columns.ForeignKey(p => p.SeverityID, (System.Collections.IEnumerable)ViewData["severities"], "SeverityID", "Severity1").Title("Severity").Width(100);
columns.ForeignKey(p => p.AssigneeID, (System.Collections.IEnumerable)ViewData["assignees"], "AssigneeID", "AssigneeName").Title("Assignee").Width(100);
columns.ForeignKey(p => p.TicketStatusID, (System.Collections.IEnumerable)ViewData["ticketstatuses"], "TicketStatusID", "TicketStatus1").Title("Status").Width(100);
columns.Bound(p => p.UserID).Title("User").Width(100);
columns.Bound(p => p.DateRegistered).Title("Registered").Format("{0:yyyy-MM-dd}").Width(150);
})
.ClientDetailTemplateId("ticketdetailTemplate")
.DataSource(dataSource =>
dataSource
.Ajax()
//.Filter(filter => filter.Add(e => e.CustomerID).IsEqualTo(CustomerID))
.Model
(model=>{
model.Id(p => p.TicketID);
model.Field(p=>p.TicketID).Editable(false);
model.Field(p => p.CustomerID);
model.Field(p => p.AreaOfBusinessID);
model.Field(p => p.OccurredOn);
model.Field(p => p.SeverityID);
model.Field(p => p.AssigneeID);
model.Field(p => p.TicketStatusID);
model.Field(p => p.UserID);
model.Field(p => p.DateRegistered).DefaultValue(DateTime.Now);
})
.Read(read => read.Action("Index","Ticket"))
.Create(create => create.Action("Create", "Ticket"))
.Update(update => update.Action("Edit", "Ticket"))
//.Destroy(destroy => destroy.Action("Delete", "Ticket"))
)
.Pageable()
.Navigatable()
.Selectable()
.Sortable()
.Editable(editing => editing.Mode(GridEditMode.InCell))
.ToolBar(toolbar =>
{
toolbar.Create();
toolbar.Save();
})
)
<
script
id
=
"ticketdetailTemplate"
type
=
"text/kendo-tmpl"
>
@(Html.Kendo().Grid<
ModelApp.Models.TicketsDetails
>()
.Name("ticketdetailgrid")
.Columns(columns =>
{
columns.Bound(o => o.TicketsDetailID).Title("ID").Width(100);
columns.Bound(o => o.TicketID).Title("Ticket").Width(150); //
columns.ForeignKey(o => o.CustomerContactID, (System.Collections.IEnumerable)ViewData["customercontacts"], "CustomerContactID", "CustomerContactName").Title("CustomerContact").Width(150) ;
columns.ForeignKey(o => o.TicketsDetailsViaID, (System.Collections.IEnumerable)ViewData["ticketsdetailsvia"], "TicketsDetailsViaID", "TicketsDetailsVia1").Title("Via").Width(100) ;
columns.Bound(o => o.TicketsDetailsDesciption).Title("Description").Width(300);
columns.Bound(o => o.TicketsdetailsNotes).Title("Notes").Width(200);
columns.Bound(o => o.UserID).Title("User").Width(100);
columns.Bound(o => o.DateTimeStart).Format("{0:yyyy-MM-dd hh:mm}").Title("Start").Width(150);
columns.Bound(o => o.DateTimeFinish).Format("{0:yyyy-MM-dd hh:mm}").Title("Finish").Width(150);
columns.Bound(o => o.DateRegistered).Format("{0:yyyy-MM-dd hh:mm}").Title("Registered").Width(150);
})
.DataSource(dataSource => dataSource
.Ajax()
.Model
(model =>
{
model.Id(q => q.TicketsDetailID);
model.Field(q => q.TicketsDetailID).Editable(false);
//I want the DefaultValue here
model.Field(q => q.TicketID);
model.Field(q => q.CustomerContactID);
model.Field(q => q.TicketsDetailsDesciption);
model.Field(q => q.TicketsdetailsNotes);
model.Field(q => q.UserID);
model.Field(q => q.DateTimeStart).DefaultValue(DateTime.Now);
model.Field(q => q.DateTimeFinish).DefaultValue(DateTime.Now);
model.Field(q => q.DateRegistered).DefaultValue(DateTime.Now);
})
.Read(read => read.Action("TicketsDetailsRead", "Ticket", new { ticketID = "#=TicketID#" }))
.Update(update => update.Action("TicketsDetailsEdit", "Ticket"))
.Create(update => update.Action("TicketsDetailsCreate", "Ticket", new { ticketID = "#=TicketID#" }))
)
.Pageable()
.Sortable()
.Editable(editing => editing.Mode(GridEditMode.InCell))
.ToolBar(toolbar =>
{
toolbar.Create();
toolbar.Save();
})
.ToClientTemplate()
)
</
script
>