2

asp.net asp:CheckBoxListをRepeatLayout="UnorderedList"で使用しています

常に出力を次のようにレンダリングします(簡潔にするために一部の値が欠落しています)

<ul class="checkbox unstyled">
  <li><input type="checkbox" value="17"><label>Label Name</label></li>              
</ul>

しかし、突然、スパンがリストに表示されます

<ul class="checkbox unstyled">
  <li><span alt="17"><input type="checkbox" value="17"><label>Label Name</label></span></li>                
</ul>

次のコードによって生成されます

<div class="control-group" >                
  <label class="control-label" id="Label2">Available Mailing Lists</label>
    <div class="controls">            
      <asp:CheckBoxList id="chklSubs" runat="server" RepeatLayout="UnorderedList" CssClass="checkbox unstyled"></asp:CheckBoxList>
    </div>
</div>

それは私のCSSを台無しにして、リストを壊しています。なぜこのスパンを取得するのでしょうか。また、どうすればそれを取り除くことができますか?

補足私はtwitterブートストラップでスタイリングしています。

フル出力

<ul id="ContentPlaceHolderDefault_override_innerPageOverRide_BoilerplateMainContentPlaceHolder_ctl00_SignUpCtl_4_chklSubs" class="checkbox unstyled">
  <li><span alt="7"><input id="ContentPlaceHolderDefault_override_innerPageOverRide_BoilerplateMainContentPlaceHolder_ctl00_SignUpCtl_4_chklSubs_0" type="checkbox" name="ctl00$ctl00$ctl00$ContentPlaceHolderDefault$override$innerPageOverRide$BoilerplateMainContentPlaceHolder$ctl00$SignUpCtl_4$chklSubs$0" value="7"><label for="ContentPlaceHolderDefault_override_innerPageOverRide_BoilerplateMainContentPlaceHolder_ctl00_SignUpCtl_4_chklSubs_0">Energy Express Newsletter</label></span></li>
</ul>
4

1 に答える 1

0

コントロールにCssClassまたはその他の属性を設定すると、チェックボックスがスパンにネストされます。たとえば、コード内でチェックボックスコントロールを無効にすると、スパンタグに「disabled」属性が設定されます。jQueryがinput-selectorを使用してこの属性を削除できなかったために気づきました(IEでのみ機能しません)。

これはすべての通常のブラウザで機能するので、これを試してください。

$("div#" + value + " input:checked").removeAttr('disabled');

IEで機能させるには、これを追加する必要があります。

$("div#" + value + " span").removeAttr('disabled');

ここを見てください: C#asp.net:レンダリング時にWebControlからスパンタグを削除する方法

于 2012-05-02T08:09:18.337 に答える