将数据从一个 Kendo 网格传递到位于弹出窗口 window 内的另一个网格
Passing Data from one Kendo Grid to another which resides inside a popup window
我正在为一个项目使用 .net-core 和 Kendo-UI。
我正在尝试将选中的(每行都有一个复选框)值从一个 Kendo 网格传递到位于弹出窗口 window 中的另一个网格。
此弹出窗口 window 是一个 bootstrap 4 弹出窗口,在单击按钮时调用。
问题是弹出窗口中的网格 window 不会显示选中的数据。
它的工作原理是用户勾选网格中的行,然后单击一个按钮,然后向服务器发送 POST。
此 post 包含已检查行的数组。
此数组然后通过控制器传回弹出窗口内的另一个 Kendo 网格。
我希望发生的是传递给控制器的数据被传递回这个新网格。
正在发生的是第二个网格仍然是空的。
我检查了 chrome 工具中的网络选项卡,控制器正在返回数据。
它只是找不到通往网格的路。
有什么想法吗?
// 这是控制器函数,ajax 调用和 kendo 网格(弹出)。
//控制器函数
public IActionResult SendInventoryGridData
([DataSourceRequest]DataSourceRequest request, string ViewBy, int BrandId, string[] Asins)
{
List <InventoryVM> Datalist= new List<InventoryVM>();
foreach(string Asin in Asins)
{
Datalist.Add(new InventoryVM { Asin = Asin, Quantity = 1 });
}
var results = Datalist;
return Json(results.ToDataSourceResult(request));
}
// Ajax Post
$.ajax({
type: "POST", url: '@Url.Action("SendInventoryGridData", "InventoryManager")',
success: function (data) {
console.log(data);
},
data: { "ViewBy": viewBy, "BrandId": brandId, "Asins": Asins },
accept: 'application/json'
});
`````````````````````````````````````````````````````````````````````````
// Kendo Grid in popup window
`````````````````````````````````````````````````````````````````````
@(Html.Kendo().Grid<Grit.WebUI.Models.Inventory.InventoryVM>()
.Name("gReviewFeedbackCombo")
.Columns(columns =>
{
columns.Bound(p => p.Asin).Title("Asin");
columns.Bound(p => p.Quantity).Editable("productNameEditable");
})
.Scrollable(sc => sc.Endless(true))
.HtmlAttributes(new { style = "height:400px;" })
.DataSource(dataSource => dataSource
.Ajax()
.Model(model => model.Id(p => p.Asin))
.Read(read => read.Action("SendInventoryGridData", "InventoryManager")))
.Events(events => events.DataBound("dataBound")
)
)
``````````````````````````````````````````````````````````````````````````
经过一番思考,我找到了答案。我删除了 ajax 调用并让网格调用函数本身。工作得很好。
我正在为一个项目使用 .net-core 和 Kendo-UI。
我正在尝试将选中的(每行都有一个复选框)值从一个 Kendo 网格传递到位于弹出窗口 window 中的另一个网格。 此弹出窗口 window 是一个 bootstrap 4 弹出窗口,在单击按钮时调用。 问题是弹出窗口中的网格 window 不会显示选中的数据。
它的工作原理是用户勾选网格中的行,然后单击一个按钮,然后向服务器发送 POST。 此 post 包含已检查行的数组。
此数组然后通过控制器传回弹出窗口内的另一个 Kendo 网格。
我希望发生的是传递给控制器的数据被传递回这个新网格。 正在发生的是第二个网格仍然是空的。 我检查了 chrome 工具中的网络选项卡,控制器正在返回数据。 它只是找不到通往网格的路。
有什么想法吗?
// 这是控制器函数,ajax 调用和 kendo 网格(弹出)。
//控制器函数
public IActionResult SendInventoryGridData
([DataSourceRequest]DataSourceRequest request, string ViewBy, int BrandId, string[] Asins)
{
List <InventoryVM> Datalist= new List<InventoryVM>();
foreach(string Asin in Asins)
{
Datalist.Add(new InventoryVM { Asin = Asin, Quantity = 1 });
}
var results = Datalist;
return Json(results.ToDataSourceResult(request));
}
// Ajax Post
$.ajax({
type: "POST", url: '@Url.Action("SendInventoryGridData", "InventoryManager")',
success: function (data) {
console.log(data);
},
data: { "ViewBy": viewBy, "BrandId": brandId, "Asins": Asins },
accept: 'application/json'
});
`````````````````````````````````````````````````````````````````````````
// Kendo Grid in popup window
`````````````````````````````````````````````````````````````````````
@(Html.Kendo().Grid<Grit.WebUI.Models.Inventory.InventoryVM>()
.Name("gReviewFeedbackCombo")
.Columns(columns =>
{
columns.Bound(p => p.Asin).Title("Asin");
columns.Bound(p => p.Quantity).Editable("productNameEditable");
})
.Scrollable(sc => sc.Endless(true))
.HtmlAttributes(new { style = "height:400px;" })
.DataSource(dataSource => dataSource
.Ajax()
.Model(model => model.Id(p => p.Asin))
.Read(read => read.Action("SendInventoryGridData", "InventoryManager")))
.Events(events => events.DataBound("dataBound")
)
)
``````````````````````````````````````````````````````````````````````````
经过一番思考,我找到了答案。我删除了 ajax 调用并让网格调用函数本身。工作得很好。