获得自动控制的大小?

时间:2009-04-03 14:33:51

标签: asp.net javascript vb.net

我有一种情况,我在同一个asp.net页面上有几个列表框控件。它们目前已自动调整以防止数据截断。但是,我希望能够确定最大列表框的宽度,然后将其他列表框的大小更改为相同。

问题是......如何访问列表框的大小?或者我可以吗?

2 个答案:

答案 0 :(得分:1)

是的,你可以......

//This is a <div> that wraps around your listboxes
var wrapperDiv = document.getElementById('listboxWrapper');

//Get all <select> elements within the <div>
var sels = wrapperDiv.getElementsByTagName('SELECT');

//An array to store the width values
var widths = new Array();

//Load the array
for(var i = 0, l = sels.length; i < l; i++)
  widths[i] = sels[i].offsetWidth;

//Get the max width
var maxW = Math.max(widths);

//Set the max width to all the list boxes
for(var sel in sels)
  sels[sel].style.width = maxW;

答案 1 :(得分:-1)

为了获得最佳效果,请考虑使用javascript框架,使用jquery:

var width = 0;
//get the largest width
$("select").each(function() {
    if ($(this).width() > width) {
        width = $(this).width();
     }
});
//make them all the same width
$("select").css("width", width);