c# - Bootstrap 多选控件 - 如何判断选择了什么

标签 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>

我现在可以访问 chkCheese来自带有上述代码的 CS 文件,但没有 .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"

关于c# - Bootstrap 多选控件 - 如何判断选择了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25454495/

相关文章:

html - Firefox 破坏 Bootstrap 行显示

html - 网格中的 Bootstrap 内容包装

c# - 验证 CSS 3.0 不是已知的属性名称

.net - .NET 中您最喜欢的功能是什么?

c# - 使用 UpdatePanel 从内容页面更新 MasterPage 上的标签,无需完整回发

c# - ASP.NET OpenXML : How to create password protected word file

javascript - 带有箭头跟随的 Twitter Bootstrap Scrollspy

c# - 从 Android 应用程序读取 Unity 中的串行数据

c# - ASP.Net : Asynchronous Update Panel Loading with two update panels

C# 结构泛型构造函数