显示的ui-grid内部选项卡没有列

时间:2016-03-15 01:24:36

标签: angularjs twitter-bootstrap-3 angular-ui-grid bootstrap-tabs

我正在实现一个带有ui-grid的选项卡,该选项卡不显示第5列的列。 在最新的应用程序加载中,网格显示得非常好,但如果我按F5,Ctrl-F5网格不会显示列,如图所示。

我检查生成的HTML并且没有生成hiden列的内容。 如果我将ui-grid放在tab外面,它总是按预期显示

首次上传 First Load

在F5或Ctrl + F5之后 After F5 or CtrlF5

在菜单中可以看到所有列都标记为如图所示 Can see in menu that all columns are marked as shown


隐藏列刷新ui-grid Hidding a column refresh the ui-grid
外部标签总是有效 Outside tab always works

缩减网页代码

    Service.prototype.getColumns = function () {
        return [
                        { field: 'branch_Name', displayName: commons.translate('branch_externalform_field_name_label'), enableCellEdit: false },
                        { field: 'productPackageProduct_Product_Name', width: '300', displayName: commons.translate('product_externalform_field_name_label'), enableCellEdit: false },
                        { field: 'productPackageProduct_ProductPackage_Name', displayName: commons.translate('productpackage_externalform_field_name_label'), enableCellEdit: false },
                        { field: 'measureUnit_Name', displayName: commons.translate('measureunit_externalform_field_name_label'), enableCellEdit: false },
                        { field: 'quantity', displayName: commons.translate('stock_selfform_field_quantity_label'), enableCellEdit: false },
                        { field: 'price', displayName: commons.translate('stock_selfform_field_price_label'), enableCellEdit: false },
                        { field: 'createdDate', cellFilter: 'date', displayName: commons.translate('stock_selfform_field_createddate_label'), enableCellEdit: false },
                        { field: 'buyerOfferCount', width: '60', displayName: commons.translate('buyeroffer_entity_name_pluralsimple'), enableCellEdit: false, enableSorting: false },
                        {
                            field: 'myCurrentBuyerOffer.unitaryPrice', width: '90', displayName: commons.translate('buyeroffer_html_fromstock_unitaryprice_label'), enableCellEdit: true, enableCellEditOnFocus: true, enableSorting: false,
                            editableCellTemplate: "<div class=\"bg-warning\"><form name=\"inputForm\"><input type=\"number\" ng-class=\"'colt' + col.uid\" ui-grid-editor ng-model=\"MODEL_COL_FIELD\"  data-ng-model-options=\"{allowInvalid:true}\" data-z-float step=\"0.01\" min=\"0.01\" max=\"{{row.entity.price}}\" ng-pattern=\"/^[0-9]+(\.[0-9]{1,2})?$/\"></form></div>",
                        },
                        {
                            field: 'myCurrentBuyerOffer.quantity', width: '90', displayName: commons.translate('buyeroffer_html_fromstock_quantity_label'), enableCellEdit: true, enableCellEditOnFocus: true, enableSorting: false,
                            editableCellTemplate: "<div class=\"bg-warning\"><form name=\"inputForm\"><input type=\"number\" ng-class=\"'colt' + col.uid\" ui-grid-editor ng-model=\"MODEL_COL_FIELD\"  data-ng-model-options=\"{allowInvalid:true}\" data-z-float step=\"1\" min=\"0\" max=\"{{row.entity.quantity}}\"></form></div>",
                        },
                        { field: 'id', displayName: '', width: '100', rezisable: false, enableColumnMenu: false, enableSorting: false, enableCellEdit: false, enableCellEditOnFocus: false, enableFocus: false, cellTemplate: '<div class="text-center"><button class="btn btn-xs" ng-disabled=\"!grid.appScope.stockToOfferLogic.listConfiguration.buyerOfferReadyToSave(row.entity.myCurrentBuyerOffer)\" ng-class="{\'btn-success\': row.entity.myCurrentBuyerOffer.changed, \'btn-default\': !row.entity.myCurrentBuyerOffer.changed}" ng-click="grid.appScope.stockToOfferLogic.listConfiguration.saveNewOfferFromStock(row.entity.myCurrentBuyerOffer)"><i class="fa fa-save"></i></button><button class="btn  btn-xs" ng-if="grid.appScope.stockToOfferLogic.listConfiguration.showBuyerOfferRefreshButton(row.entity.myCurrentBuyerOffer)" ng-disabled=\"!grid.appScope.stockToOfferLogic.listConfiguration.buyerOfferCanRefresh(row.entity.myCurrentBuyerOffer)\" ng-class="{\'btn-danger\': row.entity.myCurrentBuyerOffer.changed, \'btn-default\': !row.entity.myCurrentBuyerOffer.changed}" ng-click="grid.appScope.stockToOfferLogic.listConfiguration.refreshBuyerOffer(row.entity.myCurrentBuyerOffer)"><i class="fa fa-refresh"></i></button><button class="btn btn-xs btn-success" ng-if="grid.appScope.stockToOfferLogic.listConfiguration.showBuyerOfferImplicationButton(row.entity.myCurrentBuyerOffer)" ng-click="grid.appScope.stockToOfferLogic.listConfiguration.acceptBuyerOffer(row.entity.myCurrentBuyerOffer.id)"><i class="fa fa-thumbs-o-up"></i></button></div>' },
        ];
    };
    <ul class="nav nav-tabs nav-tabs-ar">
        <li class="pointer" ng-class="{'active': filters.activeSection == 'buyer'}"><a data-target="#buyer" data-toggle="tab" ng-click="filters.activeSection = 'buyer'" translate="traderole_html_buyer_label"></a></li>
    </ul>
    <!-- Tab panes -->
    <div class="tab-content">
        <div class="tab-pane" id="buyer" ng-class="{'active': filters.activeSection == 'buyer'}">
            <div class="panel panel-default">
                <div class="panel-heading">
                </div>
                <div class="panel-body">
                    <div ng-if="filters.activeSection == 'buyer'" class="gridStyle" external-scopes="states" ui-grid="stockToOfferLogic.listConfiguration.gridOptions" ui-grid-pagination ui-grid-edit ui-grid-cellnav custom-ui-grid-scroll></div>
                </div>
            </div>
            <h3></h3>
        </div>
     </div>

1 个答案:

答案 0 :(得分:0)

使用ui.grid.autoResize解决了问题。

我不知道为什么但是事实是网格(在标签内)不允许添加超过10个columnDefs)。无论列的大小,如果我添加了11个defs,则隐藏第4列之后的列。所以,我的第一个想法是ui-grid无法计算网格的宽度,可能是因为标签包装。搜索重新调整大小的容器的网格,我找到了模块ui.grid.autoResize,它解决了所有地球的问题。