Bootstrap多选控制 - 如何判断所选内容

时间:2014-08-22 19:43:34

标签: c# asp.net twitter-bootstrap

使用this as an example,我可以让下拉列表正常工作。不幸的是,我无法弄清楚如何确定从C#后端检查哪些复选框。我尝试将<option>代码替换为<asp:CheckBox...,但复选框显示在下拉按钮的右侧,在下拉列表之外。我也试过下面的代码:

    <select class="multiselect" multiple="multiple">
        <option value="cheese" id="chkCheese" runat="server">Cheese</option>
        <option value="tomatoes">Tomatoes</option>
        ...
    </select>

我现在可以使用上面的代码从CS文件中访问chkCheese,但.Checked.Selected没有属性。知道为什么吗?

1 个答案:

答案 0 :(得分:5)

您的<option value="cheese" id="chkCheese" runat="server">将以HtmlGenericControl的形式解决,因此您将通过标准媒体资源获得限制。

一种选择是采用WebForms:

<asp:ListBox SelectionMode="Multiple" runat="server" CssClass="multiselect"  ID="Multi" multiple="multiple" >
   <asp:ListItem Value="cheese" >Cheese</asp:ListItem>
   <asp:ListItem Value="tomato" >Tomato</asp:ListItem>
   <asp:ListItem Value="potato" >Potato</asp:ListItem>
</asp:ListBox>

用一点点jquery把它连接起来:

<script>
  $(function() {
    $('.multiselect').multiselect();
  });
</script>

然后在服务器端,您可以查看所选项目

   if (this.Multi.Items.FindByValue("cheese").Selected)
   {
       //Add cheese to pizza?
   }

当然,值得注意的是,仅仅因为您使用的是WebForms,您仍然可以使用普通的“HTML”

    <select class="multiselect" multiple="multiple" name="select2">
        <option value="cheese" >Cheese</option>
        <option value="tomatoes">Tomatoes</option>
    </select>

在服务器端,您可以查看Request.Form["select2"],其中多个值将以逗号分隔的字符串显示"cheese,tomatoes"