是否可以使用Java脚本更改.Net Core Kendo Signalr网格传输客户端CRUD名称

时间:2019-11-18 07:15:41

标签: asp.net-core kendo-ui signalr kendo-grid crud

页面上有两个grid。他们有product data起的order table。数据源类型为signalr。我正在根据product category用一些按钮过滤它们。
让我用例子来解释。

产品类别MEATDESERT
产品 ( Product-A, Product-B, Product-E, Product-F )属于MEAT类别
产品 ( Product-G, Product-H, Product-C, Product-D )DESERT类别中

产品状态COOKINGCOOKED

名为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 COOKINGCOOKED

命名的网格客户端方法

当我根据product category过滤网格时,可以说我针对MEAT类别进行了过滤
Grid1 显示数据( Product-A, Product-B )
Grid2 显示数据( Product-E, Product-F )
到目前为止一切顺利。

假设我们从product dataHUB发送Grid Client Create method createOrderProductForCOOKED

Clients.Group("GroupNameDoesntMatter").SendAsync("createOrderProductForCOOKED", Product-D);
// Product-D is Product-D DATA

我看到dataGrid2而来(正在创建),即使它有一个带有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上找不到其他解决方案来正确更改它。也许不能。.但是我是开放的建议..

0 个答案:

没有答案