使用 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"
我是一名优秀的程序员,十分优秀!