views:

441

answers:

3

Hello, I made a CheckboxList and it will not line up. I don't see any way to control the generated HTML. Right now, the check boxes do not align due to the widths of the <td> of each checkbox label being an automatic width. How can I set the width of this and make all the labels and checkboxes appear in two vertical aligned columns?

My code is simple:

<div style="text-align: center;">
    <p>
    Here you will tell..
    </p>
    <asp:CheckBoxList runat="server" ID="cbl" Width="300px"></asp:CheckBoxList>
    <br />
    <input type="button" id="next_3" value="Next Page" />
</div>

And here is a screen shot

alt text

A: 

Maybe I don't understand your question, but for me this works fine:

<table>
    <tr>
        <td><input type="checkbox" name="cb1" id="cb1"><label for="cb1">Checkbox 1</label></td>
    </tr>
    <tr>
        <td><input type="checkbox" name="cb2" id="cb1"><label for="cb2">Checkbox 2</label></td>
    </tr>
    <tr>
        <td><input type="checkbox" name="cb3" id="cb1"><label for="cb3">Checkbox 3</label></td>
    </tr>
    <tr>
        <td><input type="checkbox" name="cb4" id="cb1"><label for="cb4">Checkbox 4</label></td>
    </tr>
    <tr>
        <td><input type="checkbox" name="cb5" id="cb1"><label for="cb5">Checkbox 5</label></td>
    </tr>
</table>

If you can link to or show your HTML, maybe we can give you more help.

Robusto
@Rob it's in a centered div so maybe that has some affect on it? But using `text-align: left` on the checkboxlist doesn't work either. See my edit
Earlz
Can you post the markup that is output by <asp:CheckBoxList/>? The answer lies there, I am sure. I never liked those asp controls, those leaky abstractions that invariably output wacky HTML.
Robusto
@Robusto, just if your curious, the markup looked almost exactly like yours except for with a `width=` bit..
Earlz
+1  A: 

You can have it contained within another <div> that does left-aligning like so:

<div style="text-align: center;">
    <p>Here you will tell..</p>
    <div style="text-align: left; width: 50%; margin: auto;">
        <asp:CheckBoxList runat="server" ID="cbl" Width="300px"></asp:CheckBoxList>
    </div> 
    <input type="button" id="next_3" value="Next Page" />
</div>
CAbbott
I want it centered in the middle of the screen, but I guess I have to use the margin trick for that. This fixes the problem though and now everything is in straight vertical columns!
Earlz
FYI, I modified my example using the `<div>` centering tip found here: http://stackoverflow.com/questions/114543/how-to-center-div-in-div
CAbbott
A: 

Just add the following to your checkboxlist

Style="text-align='left'";

<asp:CheckBoxList ID="CheckBoxList1" runat="server" TextAlign="Right" Style="text-align='left';"
                                        RepeatColumns="10" RepeatDirection="Vertical" CellSpacing="20">