2014-09-11 28 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>