1 回答

TA貢獻1848條經驗 獲得超6個贊
經過幾個小時的打擊和嘗試,我終于解決了。因此,我將其發布在這里,以節省其他人遇到類似問題的時間:
我DetailExpand向主網格添加了一個事件。并刪除了Change上的事件dataSource。
@(Html.Kendo()
.Grid<ProjectName.DataModels.Models.Customer>()
.Name("CustomerGrid")
.Columns(columns =>
{
columns.Bound(e => e.CustomerId);
columns.Bound(e => e.SomeCustomerColumn);
})
.ClientDetailTemplateId("OrderDetails")
.AutoBind(false) // Don't load the data yet because I'll need to supply parameters for the fetch
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.Model(model => model.Id("CustomerId", typeof(string)))
.Read(read => read.Action("GetCustomersAsync", "Customer").Data("passArguments"))
)
.Events(events => events.DataBound("dataBound").DetailExpand("onExpand"))
)
onExpand現在,每次我們在父網格中展開一行時,都會調用所調用的回調函數。這是我現在設置子網格的dataSource.
// Passing e is also important here because if you don't, this callback gets called
// for every row in the main grid (even when you don't expand them!)
function onExpand(e) {
var customerId = e.sender.dataItem(e.masterRow).CustomerId;
var orders = e.sender.dataItem(e.masterRow).Orders;
//Initialize the child grid as well
var childGridName = "#" + "OrderDetails_" + customerId;
var childGrid = $(childGridName).data("kendoGrid");
if (childGrid !== undefined) {
childGrid.dataSource.data(orders);
}
}
function dataBound() {
this.expandRow(this.tbody.find("tr.k-master-row").first());
}
我曾經e.sender.dataItem(e.masterRow).PROPERTYNAME從主行訪問我需要的屬性。
現在這工作完美無缺!
添加回答
舉報