使用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
没有属性。知道为什么吗?
答案 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"