public ActionResult _StocktakeDetailGridPartial(int Id)
        {
            var viewModel = GridViewExtension.GetViewModel("StocktakeGridDetail");

            ViewBag.StockID = Id;
            if (viewModel == null)
            {
                viewModel = StockTakeDetailsCustomBinding.CreateStockTakeDetailsGridViewModel();
            }
            return(StocktakeGridActionCore(viewModel, Id));
        }
        public ActionResult StocktakeGridActionCore(GridViewModel gridViewModel, int Id)
        {
            ViewBag.StockID = Id;
            gridViewModel.ProcessCustomBinding(
                new GridViewCustomBindingGetDataRowCountHandler(args =>
            {
                StockTakeDetailsCustomBinding.StockTakeDetailsDataRowCount(args, CurrentTenantId, CurrentWarehouseId, Id);
            }),

                new GridViewCustomBindingGetDataHandler(args =>
            {
                StockTakeDetailsCustomBinding.StockTakeDetailsData(args, CurrentTenantId, CurrentWarehouseId, Id);
            })
                );
            return(PartialView("_StocktakeDetailGridPartial", gridViewModel));
        }