2014-09-11 92 views
3

我在使用CheckBoxList控件时遇到了一些麻烦。ASP.NET CheckBoxList ListItem不包装在一行

正如你可以在此图中看到:http://i.stack.imgur.com/IkHXT.png

每个列表项被示出在2条独立的线,而不是仅仅一个。

这是代码:

 <asp:CheckBoxList ID="cblTest" runat="server"> 
       <asp:ListItem Text="First item"></asp:ListItem> 
       <asp:ListItem Text="Second item"></asp:ListItem> 
     </asp:CheckBoxList> 

仅供参考,我使用的MetroUI,CSS(http://metroui.org.ua/)引导。

编辑: @Royi纳米尔:我试图删除使用JQuery的标签,但它不工作。标签仍然存在。

<asp:CheckBoxList ID="cblTest" RepeatLayout="Flow" runat="server"> 
     <asp:ListItem Text="First item"></asp:ListItem> 
     <asp:ListItem Text="Second item"></asp:ListItem> 
    </asp:CheckBoxList> 
    <script type="text/javascript"> 
     $('#cblTest').find('br').remove(); 
    </script> 

编辑2: @Royi纳米尔:问题是不是
标签,因为当我删除所述第二项目的视图源在2个单独的示出了不带标签,但仍线。

<span id="body_cblTest"><input id="body_cblTest_0" type="checkbox" name="ctl00$body$cblTest$0" value="First item" /><label for="body_cblTest_0">First item</label></span> 

EDIT 3: 问题是在MetroUI-CSS自举(城域bootstrap.css)。正如@drigomed所说,它将所有标签设置为块显示。

.metro label { 
    display: block; /*set this to inline-block*/ 
    margin: 5px 0; 
} 
+0

上传的jsfiddle/jsbin(生成的查看源代码的) – 2014-09-11 07:55:52

+0

这就是:http://jsfiddle.net/cd2m2Lyj/1/ – user3627041 2014-09-11 08:07:54

回答

1

我遇到了同样的问题。当RepeatLayout设置为Flow时,复选框控件的文本部分将呈现为标签。

所以,这是因为bootstrap,它将所有标签设置为块显示。为了解决这个whitout造成对应用程序的其他任何问题,我已经包裹着我的复选框到一个div或P与特定的类,并设置成我的CSS:

.pCheck label { 
    display: inline-block; 
    margin-left: 5px; 
} 
+0

确切地说,它一直是引导者。我几分钟前就修好了它。我将显示设置为“内联”,但我想最好将它设置为内联块,就像你说的那样。 – user3627041 2014-09-11 20:57:32

1

将此属性设置为您的CheckBoxList:

<asp:CheckBoxList RepeatLayout="Flow" 

它会导致你的渲染渲染的表像你一样。

额外BR通过asp.net插入:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeatlayout(v=vs.110).aspx

enter image description here

只使用JS将其删除。

+0

我已经尝试过,之前,它没有工作。我认为这可能是一个引导问题。 – user3627041 2014-09-11 08:27:58

+0

@改变其流动后user3627041,上传新jsbin(viedwsource) – 2014-09-11 08:28:19

+0

好了,那就是:http://jsfiddle.net/a0womcvz/1/ – user3627041 2014-09-11 08:32:17

1

我有同样的问题,但对于我的解决方案是不同的,因为我没有任何以前的显示属性设置为标签。

有迹象表明,我打了,这正是排序我的名单我多想他们的CheckBoxList的两个属性:

<asp:CheckBoxList ID="cbInterimRent" runat="server" RepeatLayout="Flow" RepeatDirection="Horizontal" > 
    <asp:ListItem Value="1">Yes</asp:ListItem> 
    <asp:ListItem Value="0">No</asp:ListItem> 
</asp:CheckBoxList> 

重复布局改变它的样子,你可以使用表格,列表类型和流量(流量删除表格的边框,只是显示的复选框和文本)

重复方向允许您选择其中的项目显示的方向。在我的情况下,这是我不得不用来改变我的列表从垂直显示到水平。

0

下面的代码为我工作。 RepeatDirection为水平。

<asp:RadioButtonList ID="rbSurveyInsurance" runat="server" RepeatLayout="Flow" RepeatDirection="Horizontal"> 
       <asp:ListItem Text="Yes" Value="1"></asp:ListItem> 
        <asp:ListItem Text="No" Value="0"></asp:ListItem> 
    </asp:RadioButtonList>