页面上有两个grid
。他们有product data
起的order table
。数据源类型为signalr
。我正在根据product category
用一些按钮过滤它们。
让我用例子来解释。
产品类别(MEAT
,DESERT
)
产品 ( Product-A, Product-B, Product-E, Product-F )
属于MEAT
类别
产品 ( Product-G, Product-H, Product-C, Product-D )
在DESERT
类别中
产品状态(COOKING
,COOKED
)
Grid1
的 OrderProductTakenGrid
显示order products
的产品状态为COOKING
可以说数据为( Product-A, Product-B, Product-C, Product-D )
Grid2
的 OrderProductCookingGrid
显示order products
的产品状态为COOKED
可以说数据为( Product-E, Product-F, Product-G, Product-H )
Grid1 OrderProductTakenGrid
代码部分:
.Transport(tr =>{
tr.Client(c => c
.Read("readOrderProductsByOrderCategory")
.Create("createOrderProductForCOOKING")
.Update("updateOrderProductForCOOKING")
.Destroy("destroyOrderProductForCOOKING"));
tr.ParameterMap("datasourceParameterMapForCOOKING");
})
Grid2 OrderProductCookingGrid
代码部分:
.Transport(tr =>{
tr.Client(c => c
.Read("readOrderProductsByOrderCategory")
.Create("createOrderProductForCOOKED")
.Update("updateOrderProductForCOOKED")
.Destroy("destroyOrderProductForCOOKED"));
tr.ParameterMap("datasourceParameterMapForCOOKED");
})
您可以看到以 PRODUCT STATES COOKING
和COOKED
当我根据product category
过滤网格时,可以说我针对MEAT
类别进行了过滤
Grid1 显示数据( Product-A, Product-B )
Grid2 显示数据( Product-E, Product-F )
到目前为止一切顺利。
假设我们从product data
向HUB
发送Grid Client Create method
: createOrderProductForCOOKED
Clients.Group("GroupNameDoesntMatter").SendAsync("createOrderProductForCOOKED", Product-D);
// Product-D is Product-D DATA
我看到data
为Grid2
而来(正在创建),即使它有一个带有MEAT
类别的过滤器,并且Product-D
属于DESERT
类别
我尝试的是
使用Hub
将产品数据从Grid
发送到productCategoryID
,如下所示:
var productCategoryID = getProductListItem.CategoryID;
Clients.Group("GroupNameDoesntMatter").SendAsync("createOrderProductForCOOKED"+productCategoryID , Product-D);
并尝试更改Grids Client Method Names
,同时使用简单的按钮grids
过滤javascript
<script>
$(".simpleFilterButton..").on("click", function() {
var productCategoryID = ...;
var Grid1 = $("#OrderProductTakenGrid").data("kendoGrid");
Grid1.dataSource.transport.options.create.url =
"createOrderProductForCOOKING"+productCategoryID ;
Grid1.read().then(function() {
Grid1.refresh();
});
var Grid2 = $("#OrderProductCookingGrid").data("kendoGrid");
Grid2.dataSource.transport.options.create.url =
"createOrderProductForCOOKED"+productCategoryID ;
Grid2.read().then(function() {
Grid2.refresh();
});
});
</script>
因此,即使使用JavaScript更改了create urls
中的grids
,他们也不会听"createOrderProductForCOOKING"+productCategoryID
或"createOrderProductForCOOKED"+productCategoryID
他们仍然听着先前的方法"createOrderProductForCOOKED"
或"createOrderProductForCOOKING"
我认为我在更改 transport.options.create.url
时遇到了一些问题,我在Google上找不到其他解决方案来正确更改它。也许不能。.但是我是开放的建议..