C# 更新子网格时刷新父Kendo MVC网格
我想在更新子网格记录时更新父网格,这可能吗?如果有的话,有人能提供一些建议吗 首先,我不确定哪个事件最适合在子网格上使用。我希望启动子网格的CRUD操作,然后再次加载父网格的内容,最好使用Ajax 下面是我的网格:C# 更新子网格时刷新父Kendo MVC网格,c#,asp.net-mvc-3,asp.net-mvc-4,kendo-ui,kendo-grid,C#,Asp.net Mvc 3,Asp.net Mvc 4,Kendo Ui,Kendo Grid,我想在更新子网格记录时更新父网格,这可能吗?如果有的话,有人能提供一些建议吗 首先,我不确定哪个事件最适合在子网格上使用。我希望启动子网格的CRUD操作,然后再次加载父网格的内容,最好使用Ajax 下面是我的网格: @{ ViewBag.Title = "Bills: Parent/Child"; } <h2>Bills Index</h2> @(Html.Kendo().Grid<BillParent>() .Name("BillPare
@{
ViewBag.Title = "Bills: Parent/Child";
}
<h2>Bills Index</h2>
@(Html.Kendo().Grid<BillParent>()
.Name("BillParentsGrid")
.Columns(columns =>
{
columns.Bound(h => h.Category);
columns.Bound(h => h.Description);
columns.Bound(h => h.Amount);
columns.Command(command =>
{
command.Edit();
}).Width(95);
})
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Id(h => h.BillId);
model.Field(h => h.BillId).Editable(false);
})
.Events(events => events.Error("error_handler"))
.Read(read => read.Action("BillParents_Read", "Bill"))
.Update(update => update.Action("BillParent_Update", "Bill"))
)
.Events(events => events.DataBound("dataBound"))
.ClientDetailTemplateId("BillChildren")
)
<script id="BillChildren" type="text/kendo-tmpl">
@(Html.Kendo().Grid<BillChild>()
.Name("BillChildren_#=BillId#")
.Columns(columns =>
{
columns.Bound(d => d.BillId).Width(50);
columns.Bound(d => d.Description).Width(150);
columns.Bound(d => d.Amount).Width(80);
columns.Command(command =>
{
command.Edit();
command.Destroy();
}).Width(55);
})
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Id(d => d.BillId);
model.Field(d => d.BillId).Editable(false);
})
.Events(events => events.Error("error_handler"))
.Read(read => read.Action("BillChildren_Read", "Bill", new { id = "#=BillId#" }))
.Update(update => update.Action("BillChild_Update", "Bill"))
.Create(create => create.Action("BillChild_Create", "Bill", new { id = "#=BillId#" }))
.Destroy(destroy => destroy.Action("BillChild_Destroy", "Bill")))
.ToolBar(tools => tools.Create())
.ToClientTemplate()
)
</script>
@{
ViewBag.Title=“票据:父/子”;
}
票据指数
@(Html.Kendo().Grid())
.Name(“BillParentsGrid”)
.列(列=>
{
columns.Bound(h=>h.Category);
columns.Bound(h=>h.Description);
columns.Bound(h=>h.Amount);
columns.Command(Command=>
{
command.Edit();
}).宽度(95);
})
.DataSource(DataSource=>DataSource
.Ajax()
.Model(Model=>
{
model.Id(h=>h.BillId);
model.Field(h=>h.BillId).可编辑(false);
})
.Events(Events=>Events.Error(“错误处理程序”))
.Read(Read=>Read.Action(“BillParents\u Read”,“Bill”))
.Update(Update=>Update.Action(“BillParent\u Update”,“Bill”))
)
.Events(Events=>Events.DataBound(“DataBound”))
.ClientDetailTemplateId(“BillChildren”)
)
@(Html.Kendo().Grid())
.Name(“BillChildren#=BillId#”)
.列(列=>
{
columns.Bound(d=>d.BillId).Width(50);
columns.Bound(d=>d.Description).Width(150);
columns.Bound(d=>d.Amount).Width(80);
columns.Command(Command=>
{
command.Edit();
command.Destroy();
}).宽度(55);
})
.DataSource(DataSource=>DataSource
.Ajax()
.Model(Model=>
{
model.Id(d=>d.BillId);
model.Field(d=>d.BillId).可编辑(false);
})
.Events(Events=>Events.Error(“错误处理程序”))
.Read(Read=>Read.Action(“BillChildren_Read”,“Bill”,new{id=“#=BillId#”}))
.Update(Update=>Update.Action(“BillChild\u Update”,“Bill”))
.Create(Create=>Create.Action(“BillChild_Create”,“Bill”,new{id=“#=BillId#”}))
.Destroy(Destroy=>Destroy.Action(“BillChild\u Destroy”、“Bill”))
.ToolBar(tools=>tools.Create())
.ToClient模板()
)
非常感谢。我终于把它破解了 事件需要在数据源上,使用同步事件,而不是网格本身 短版
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Id(d => d.BillId);
model.Field(d => d.BillId).Editable(false);
})
.Events(events =>
{
events.Error("error_handler");
events.Sync("resyncParentGrid");
})
<script>
function resyncParentGrid(e) {
var parentData = $('#BillParentsGrid').data("kendoGrid");
parentData.dataSource.read();
}
</script>
@(Html.Kendo().Grid<BillParent>()
.Name("BillParentsGrid")
.Columns(columns =>
{
columns.Bound(h => h.Category).Width(50);
columns.Bound(h => h.Description);
columns.Bound(h => h.Amount).Width(80);
columns.Command(command =>
{
command.Edit();
})
.Title("Commands").Width(150);
})
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Id(h => h.BillId);
model.Field(h => h.BillId).Editable(false);
})
.Events(events => events.Error("error_handler"))
.Read(read => read.Action("BillParents_Read", "Bill"))
.Update(update => update.Action("BillParent_Update", "Bill"))
)
.Events(events => events.DataBound("dataBound"))
.ClientDetailTemplateId("BillChildren")
)
<script id="BillChildren" type="text/kendo-tmpl">
@(Html.Kendo().Grid<BillChild>()
.Name("BillChildren_#=BillId#")
.Columns(columns =>
{
columns.Bound(d => d.BillId).Width(50);
columns.Bound(d => d.Description).Width(150);
columns.Bound(d => d.Amount).Width(80);
columns.Command(command =>
{
command.Edit();
command.Destroy();
})
.Title("Commands").Width(150);
})
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Id(d => d.BillId);
model.Field(d => d.BillId).Editable(false);
})
.Events(events =>
{
events.Error("error_handler");
**events.Sync("resyncParentGrid");**
})
.Read(read => read.Action("BillChildren_Read", "Bill", new { id = "#=BillId#" }))
.Update(update => update.Action("BillChild_Update", "Bill"))
.Create(create => create.Action("BillChild_Create", "Bill", new { id = "#=BillId#" }))
.Destroy(destroy => destroy.Action("BillChild_Destroy", "Bill"))
)
.ToolBar(tools => tools.Create())
.ToClientTemplate()
)
</script>
<script>
function dataBound() {
this.expandRow(this.tbody.find("tr.k-master-row").first());
}
function resyncParentGrid(e) {
var parentData = $('#BillParentsGrid').data("kendoGrid");
parentData.dataSource.read();
}
</script>
.DataSource(DataSource=>DataSource
.Ajax()
.Model(Model=>
{
model.Id(d=>d.BillId);
model.Field(d=>d.BillId).可编辑(false);
})
.Events(Events=>
{
错误(“错误处理程序”);
events.Sync(“resyncParentGrid”);
})
函数resyncParentGrid(e){
var parentData=$('BillParentsGrid').data(“kendoGrid”);
parentData.dataSource.read();
}
完整版本
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Id(d => d.BillId);
model.Field(d => d.BillId).Editable(false);
})
.Events(events =>
{
events.Error("error_handler");
events.Sync("resyncParentGrid");
})
<script>
function resyncParentGrid(e) {
var parentData = $('#BillParentsGrid').data("kendoGrid");
parentData.dataSource.read();
}
</script>
@(Html.Kendo().Grid<BillParent>()
.Name("BillParentsGrid")
.Columns(columns =>
{
columns.Bound(h => h.Category).Width(50);
columns.Bound(h => h.Description);
columns.Bound(h => h.Amount).Width(80);
columns.Command(command =>
{
command.Edit();
})
.Title("Commands").Width(150);
})
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Id(h => h.BillId);
model.Field(h => h.BillId).Editable(false);
})
.Events(events => events.Error("error_handler"))
.Read(read => read.Action("BillParents_Read", "Bill"))
.Update(update => update.Action("BillParent_Update", "Bill"))
)
.Events(events => events.DataBound("dataBound"))
.ClientDetailTemplateId("BillChildren")
)
<script id="BillChildren" type="text/kendo-tmpl">
@(Html.Kendo().Grid<BillChild>()
.Name("BillChildren_#=BillId#")
.Columns(columns =>
{
columns.Bound(d => d.BillId).Width(50);
columns.Bound(d => d.Description).Width(150);
columns.Bound(d => d.Amount).Width(80);
columns.Command(command =>
{
command.Edit();
command.Destroy();
})
.Title("Commands").Width(150);
})
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Id(d => d.BillId);
model.Field(d => d.BillId).Editable(false);
})
.Events(events =>
{
events.Error("error_handler");
**events.Sync("resyncParentGrid");**
})
.Read(read => read.Action("BillChildren_Read", "Bill", new { id = "#=BillId#" }))
.Update(update => update.Action("BillChild_Update", "Bill"))
.Create(create => create.Action("BillChild_Create", "Bill", new { id = "#=BillId#" }))
.Destroy(destroy => destroy.Action("BillChild_Destroy", "Bill"))
)
.ToolBar(tools => tools.Create())
.ToClientTemplate()
)
</script>
<script>
function dataBound() {
this.expandRow(this.tbody.find("tr.k-master-row").first());
}
function resyncParentGrid(e) {
var parentData = $('#BillParentsGrid').data("kendoGrid");
parentData.dataSource.read();
}
</script>
@(Html.Kendo().Grid())
.Name(“BillParentsGrid”)
.列(列=>
{
columns.Bound(h=>h.Category).Width(50);
columns.Bound(h=>h.Description);
columns.Bound(h=>h.Amount).Width(80);
columns.Command(Command=>
{
command.Edit();
})
.标题(“命令”)。宽度(150);
})
.DataSource(DataSource=>DataSource
.Ajax()
.Model(Model=>
{
model.Id(h=>h.BillId);
model.Field(h=>h.BillId).可编辑(false);
})
.Events(Events=>Events.Error(“错误处理程序”))
.Read(Read=>Read.Action(“BillParents\u Read”,“Bill”))
.Update(Update=>Update.Action(“BillParent\u Update”,“Bill”))
)
.Events(Events=>Events.DataBound(“DataBound”))
.ClientDetailTemplateId(“BillChildren”)
)
@(Html.Kendo().Grid())
.Name(“BillChildren#=BillId#”)
.列(列=>
{
columns.Bound(d=>d.BillId).Width(50);
columns.Bound(d=>d.Description).Width(150);
columns.Bound(d=>d.Amount).Width(80);
columns.Command(Command=>
{
command.Edit();
command.Destroy();
})
.标题(“命令”)。宽度(150);
})
.DataSource(DataSource=>DataSource
.Ajax()
.Model(Model=>
{
model.Id(d=>d.BillId);
model.Field(d=>d.BillId).可编辑(false);
})
.Events(Events=>
{
错误(“错误处理程序”);
**events.Sync(“resyncParentGrid”)**
})
.Read(Read=>Read.Action(“BillChildren_Read”,“Bill”,new{id=“#=BillId#”}))
.Update(Update=>Update.Action(“BillChild\u Update”,“Bill”))
.Create(Create=>Create.Action(“BillChild_Create”,“Bill”,new{id=“#=BillId#”}))
.Destroy(Destroy=>Destroy.Action(“BillChild\u Destroy”,“Bill”))
)
.ToolBar(tools=>tools.Create())
.ToClient模板()
)
函数数据绑定(){
this.expandRow(this.tbody.find(“tr.k-master-row”).first());
}
函数resyncParentGrid(e){
var parentData=$('BillParentsGrid').data(“kendoGrid”);
parentData.dataSource.read();
}
我终于破解了它
事件需要在数据源上,使用同步事件,而不是网格本身
短版
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Id(d => d.BillId);
model.Field(d => d.BillId).Editable(false);
})
.Events(events =>
{
events.Error("error_handler");
events.Sync("resyncParentGrid");
})
<script>
function resyncParentGrid(e) {
var parentData = $('#BillParentsGrid').data("kendoGrid");
parentData.dataSource.read();
}
</script>
@(Html.Kendo().Grid<BillParent>()
.Name("BillParentsGrid")
.Columns(columns =>
{
columns.Bound(h => h.Category).Width(50);
columns.Bound(h => h.Description);
columns.Bound(h => h.Amount).Width(80);
columns.Command(command =>
{
command.Edit();
})
.Title("Commands").Width(150);
})
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Id(h => h.BillId);
model.Field(h => h.BillId).Editable(false);
})
.Events(events => events.Error("error_handler"))
.Read(read => read.Action("BillParents_Read", "Bill"))
.Update(update => update.Action("BillParent_Update", "Bill"))
)
.Events(events => events.DataBound("dataBound"))
.ClientDetailTemplateId("BillChildren")
)
<script id="BillChildren" type="text/kendo-tmpl">
@(Html.Kendo().Grid<BillChild>()
.Name("BillChildren_#=BillId#")
.Columns(columns =>
{
columns.Bound(d => d.BillId).Width(50);
columns.Bound(d => d.Description).Width(150);
columns.Bound(d => d.Amount).Width(80);
columns.Command(command =>
{
command.Edit();
command.Destroy();
})
.Title("Commands").Width(150);
})
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Id(d => d.BillId);
model.Field(d => d.BillId).Editable(false);
})
.Events(events =>
{
events.Error("error_handler");
**events.Sync("resyncParentGrid");**
})
.Read(read => read.Action("BillChildren_Read", "Bill", new { id = "#=BillId#" }))
.Update(update => update.Action("BillChild_Update", "Bill"))
.Create(create => create.Action("BillChild_Create", "Bill", new { id = "#=BillId#" }))
.Destroy(destroy => destroy.Action("BillChild_Destroy", "Bill"))
)
.ToolBar(tools => tools.Create())
.ToClientTemplate()
)
</script>
<script>
function dataBound() {
this.expandRow(this.tbody.find("tr.k-master-row").first());
}
function resyncParentGrid(e) {
var parentData = $('#BillParentsGrid').data("kendoGrid");
parentData.dataSource.read();
}
</script>
.DataSource(DataSource=>DataSource
.Ajax()