根据复选框列表调整asp.net面板宽度的大小?

时间:2010-05-05 18:02:25

标签: asp.net panel checkboxlist

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

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

1 个答案:

答案 0 :(得分: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>