2010-05-05 6 views
0

J'ai un panneau asp.net qui contient un CheckBoxList. Je voudrais le redimensionner afin que sa largeur corresponde parfaitement au contenu de la liste.Redimensionner une largeur de panneau asp.net basée sur une checkboxlist?

En ce moment je suis la gestion des événements avant de rendu du panneau, définissant sa largeur pour correspondre à celle de la CheckBoxList. Cependant, il semble que la propriété width de la checkbox lit zéro (au moins dans cette méthode de pré-rendu), donc la largeur du panneau est identique, ce qui conduit à des rendus incohérents dans Firefox et IE. Est-ce que quelqu'un a une meilleure approche pour faire ce que je tente ici? Merci beaucoup.

Répondre

0

Vous pouvez définir la largeur panneau onload par javascript:

<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> 
+0

Merci pour l'aide. Cela fonctionne pour moi, avec la modification que j'ai dû vérifier le offsetWidth était plus grand que (disons) 25 pixels. Sinon, quand je n'avais pas de données dans la checkbox, le offsetwidth était nul et mon panel a pris tout l'écran à la fois dans IE et Firefox pour une raison quelconque. – larryq

Questions connexes