引导多选控件-如何告诉什么'
本文关键字:什么 何告诉 控件 | 更新日期: 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"