0

我有一个包含复选框列表的 asp.net 面板。我想调整它的大小,使其宽度适合列表的内容。

现在我正在处理面板的预渲染事件,将其宽度设置为与复选框列表的宽度相匹配。但是,checkboxlist 的 width 属性似乎为零(至少在此预渲染方法中),因此面板的宽度设置相同,这导致 Firefox 与 IE 中的渲染不一致。有没有人有更好的方法来做我在这里尝试的事情?非常感谢。

4

1 回答 1

0

您可以为每个 javascript 设置面板宽度 onload:

<script>
function resizePanel() {
            var panel = document.getElementById('Panel1');
            var checkBox = document.getElementById('CheckBoxList1')
            if (panel != null && checkBox != null)
                panel.style.width = checkBox.offsetWidth + "px";
}
</script>
</head>
<body onload="resizePanel()">
    <form id="form1" runat="server">
    <asp:Panel ID="Panel1" runat="server" BorderWidth="1" BorderColor="Silver">
    <asp:CheckBoxList ID="CheckBoxList1" Width="200px" runat="server">
    <asp:ListItem Text="Item 1" Value="1"></asp:ListItem>
    <asp:ListItem Text="Item 2" Value="2"></asp:ListItem>
    <asp:ListItem Text="Item 3" Value="3"></asp:ListItem>
    <asp:ListItem Text="Item 4" Value="4"></asp:ListItem>
    <asp:ListItem Text="Item 5" Value="5"></asp:ListItem>
    <asp:ListItem Text="Item 6" Value="6"></asp:ListItem>
    <asp:ListItem Text="Item 7" Value="7"></asp:ListItem>
    </asp:CheckBoxList>
    </asp:Panel>
    </form>
</body>
</html>
于 2010-05-05T21:33:13.377 回答