引导多选控件-如何告诉什么'

本文关键字:什么 何告诉 控件 | 更新日期: 2023-09-27 18:19:05

以这个为例,我能够使下拉列表工作。不幸的是,我不知道如何从c#后端确定选中了哪些复选框。我尝试用<asp:CheckBox...替换<option>标签,但复选框出现在下拉按钮的右侧,在下拉框之外。我还尝试了下面的代码:

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

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

引导多选控件-如何告诉什么'

您的<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"