6

I tried to set width for column in angular datatables with filters. But width of the column not changed.

I try following

   var columnsSpecification = [
      {
          type: 'text',
          bRegex: true,
          bSmart: true
      }, {
          type: 'text',
          bRegex: true,
          sWidth:"90px"}];


    $scope.dtOptions = DTOptionsBuilder.newOptions()
      .withBootstrap()
      .withOption('scrollX', '700%')
      .withOption('scrollY', height + 'px')
      .withOption('oLanguage', { "sEmptyTable": " " })
      .withOption('lengthMenu', [[-1, 1000, 100, 50, 25, 10], ['All', 1000, 100, 50, 25, 10]])
      .withOption('paging', false)
      .withOption('bInfo',false)
      .withColumnFilter({          
      aoColumns:columnsSpecification 
  })
  .withTableTools('/Content/DataTables/swf/copy_csv_xls.swf')
  .withTableToolsButtons(['xls']);

In html file I tried this:

   <table id="table-machines" datatable="ng" class="table table-striped" dt-options="dtOptions">
    <thead>
        <tr>
            <th>Name</th>
            <th style="width: 90px !important">Value</th>                
        </tr>
    </thead>
    <tbody>
        <tr ng-repeat="m in records>
            <td>{{m.name}}</td>
            <td style="width: 90px !important">{{m.Value}}</td>                
        </tr>
    </tbody>

But Value column another zise rather I setted.

I'v found, that if there is not filter - all fine.

How can I set table width and preserve filters?

3
  • Try adding .withOption('autoWidth', false). Commented Sep 8, 2015 at 20:08
  • I'v tryed it, it still not working. Commented Sep 9, 2015 at 3:14
  • For me neither, is there a bug in the new version? Commented Jan 22, 2016 at 8:28

3 Answers 3

9
vm.dtColumns = [
        DTColumnBuilder.newColumn('id').withTitle('ID').withOption('width', '5%')
    ];
Sign up to request clarification or add additional context in comments.

Comments

0

You need to define the option width in your columnDefs option:

vm.dtColumnDefs = [
    DTColumnBuilder.newColumn(1).withOption('width', '90px')
  ];

See this example.

Comments

0

Finally I've found the solution for avoiding datatables overwrite bootstrap columns width definitions:

$scope.dtOptions = DTOptionsBuilder.newOptions()
    .withOption('autoWidth', false)

It was as easy as put that name and set to false... but it in the API doesn't appear to be available :(

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.