Flexigrid: проблема window.resize - PullRequest
       6

Flexigrid: проблема window.resize

0 голосов
/ 31 октября 2010

Мне удалось придумать код, который может сделать flexigrid более «плавным», точнее, его размер может изменяться в зависимости от размера окна при загрузке страницы, но теперь я хотел бы добавить функцию автоматического изменения размера, когда размерокно меняется без обновления.

Это то, что у меня пока есть:

$(document).ready(function(){
var myWidth;
var myHeight;
var rowno;
    if($(window).resize(function(e) {
  // do something when window resizes
    if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
    var rowno = Math.floor((myHeight - 96)/29)
  }));
    $("#flex1").flexigrid
            (
            {
            url: 'post2.php',
            dataType: 'json',
            colModel : [
                {display: 'ID', name : 'id', width : (myWidth*0.018), sortable : true, align: 'center', hide: false},
                {display: 'URL', name : 'url', width : (myWidth*0.38), sortable : false, align: 'left'},
                {display: 'File Name', name : 'filename', width : (myWidth*0.239), sortable : true, align: 'left'},
                {display: 'Availability', name : 'availability', width : (myWidth*0.038), sortable : true, align: 'center'},
                {display: 'State', name : 'state', width : (myWidth*0.029), sortable : true, align: 'center'},
                {display: 'Total Size', name : 'totalsize', width : (myWidth*0.05), sortable : false, align: 'center'},
                {display: 'Current Size', name : 'currentsize', width : (myWidth*0.05), sortable : false, align: 'center'},
                {display: 'Procent', name : 'procent', width : (myWidth*0.04), sortable : true, align: 'center'},
                {display: 'Log',  width : (myWidth*0.018), sortable : false, align: 'center'},
                ],
            buttons : [
                {name: 'Add', bclass: 'add', onpress : test},
                {name: 'Delete', bclass: 'delete', onpress : test},
                {separator: true},
                {name: 'Start', bclass: 'start', onpress : test},
                {name: 'Stop', bclass: 'stop', onpress : test},
                {separator: true},              
                {name: 'Select All', bclass : 'selectall', onpress : test},
                {name: 'DeSelect All', bclass : 'deselectall', onpress : test},
                {separator: true}
                ],
            searchitems : [
                {display: 'URL', name : 'url'},
                {display: 'Filename', name : 'filename', isdefault: true}
                ],
            sortname: "id",
            sortorder: "asc",
            usepager: true,
            title: '',
            useRp: false,
            rp: rowno,
            showTableToggleBtn: true,
            height: (myHeight - 96)
            }
            );   
});

Прямо сейчас оно выдает мне ошибку в jquery о недопустимом аргументе, но я уверен, чтоСинтаксическая проблема.

Спасибо,

Кристиан.

Ответы [ 2 ]

1 голос
/ 17 декабря 2012

Если вы видите размер высоты любого элемента и добавляете его вместе, то это примерно 120px. так что если вы сделаете что-то подобное (свойство объекта конфигурации flexigrid), все будет в порядке:

$("#tabla").flexigrid({
   ...,
   width:'auto',
   height:$("#container").innerHeight()-120
});

0 голосов
/ 31 октября 2010

лучше использовать% для размера вместо px или em работает без такого большого скрипта

** редактировать **

, если вы все еще хотите сделать, предоставьте функцию settimeout, которая будет проверять каждые 1 секунду размер окна window.height и ширину с помощью window.width:)

если вам это удастся, я первый, кто скопирует ваш скрипт, я ищу то же самое. , но привык к%

...