2012-06-14 1 views
1

Я пытаюсь установить положение gridview (asp.net) в абсолютное, когда gridview растягивается дальше, чем стандартные 960 пикселей.Установка абсолютного положения влево в Javascript не работает

Однако я столкнулся с проблемой, когда left: 0 имеет эффект, который я желаю, однако ничего, кроме этого, ничего не делает.

Вот мой код. Раздел, где он меньше экрана, не работает, потому что я пытаюсь центрировать его на экране. Однако, поскольку он больше 0, абсолютное положение Left: x не работает. Любая помощь будет оценена!

var gridview = document.getElementsByTagName("table"); 
      var fieldset = document.getElementsByTagName("fieldset"); 
      fieldset[0].style.position = "relative"; 
      for (var i = 0; i < gridview.length; i++) { 
       var width = gridview[i].offsetWidth; 
       var screenWidth = window.screen.width - 2; 

       if (width > 940) { 
        gridview[i].style.position = "absolute"; 
        if (width > screenWidth) { 
         gridview[i].style.left = 0; 
         alert('> screen'); 
        } 
        else { 
         gridview[i].style.left = 50; 
         alert('< screen'); 
        } 
       } 
      } 

EDIT: Исправление было Concat «точек» после значения

+0

Я рекомендую создать простой пример, демонстрирующий проблему. Я не уверен, что в вашем примере будет достаточно, но http://jsfiddle.net может помочь. – Fenton

+2

Вы должны объединить устройство (возможно, 'px') после значения, которое вы устанавливаете. – bfavaretto

+0

Спасибо! это было то, что мне пришлось контактировать с ними после него, такую ​​глупую ошибку. благодаря –

ответ

0

Не действительно идет достаточно, чтобы идти дальше, но это может быть так, что контейнер GridView не имел свое положение набора ваш css.

Для использования postion:absolute вышеуказанный контейнер должен быть установлен в position:relative или он просто не отображает css.

Также попробуйте добавить px в конец вашего размера, установив css влево: XXpx; а не просто число.