我正在使用asp.net网站,我需要使用带有复选框的下拉列表。
我用HTML写的这个有用,但是我想要一个更加优雅的解决方案来获取代码背后的值并保留除了使用Request.Form()
之外的值
我目前用于生成下拉列表并返回信息的代码如下所示。
<div class="btn-group">
<a class="btn btn-default dropdown-toggle btn-select" data-toggle="dropdown" href="#">Report Status <span class="caret"></span></a>
<ul class="dropdown-menu">
<asp:PlaceHolder ID="statusSelectorPlaceHolder" runat="server"></asp:PlaceHolder>
</ul>
</div>
我正在生成的Html就是这样创建的;
Private Shared Function BuildHtmlStatusSelector(dictOfStatus As Dictionary(Of String, String)) As StringBuilder
Dim html As StringBuilder = New StringBuilder
For Each item In dictOfStatus
html.AppendLine(String.Format("<li style='padding-left: 10px'><label class='small' tabindex='-1'><input type='checkbox' id='reportStatus' name='reportStatus' checked='true' value='{0}'/>{1}</label></li>", item.Value, item.Key))
Next
Return html
End Function
当页面回发时我正在检查或这里的值是这样的
If Not Request.Form("reportStatus") = Nothing Then
StatusCodes = Request.Form("reportStatus")
End If
它不是最优雅的解决方案,我希望有一个简单有效的asp.net控件,我可以实现,以便我不必使用此方法
我对vb或c#示例感到满意,因为它可以兼顾两者。
非常感谢任何和所有帮助。
答案 0 :(得分:1)
我建议你这么简单。
1)。你的基于HTML的复选框没问题。
2)。只需添加一个JavaScript事件onClick =&#34; functionName(&#39; labelValue&#39;)&#34;进入它并将标签的值传递给它。
3)。在表单上添加服务器端隐藏字段。
4)。现在每次调用append value的函数作为参数和分隔符发送,如&#34;,&#34;对于serer侧隐藏场的价值。
5)。现在,当提交页面时按钮,您将在隐藏字段中获得值服务器端。
6)。使用.split(&#39;,&#39;)拆分隐藏字段值,您将获得数组中的所有值。
答案 1 :(得分:0)
我个人使用jQuery插件chosen来包装一个普通的选择框,其中包含一个优雅的UI,允许您选择多个项目。
它甚至可以很好地处理相当大的项目列表并且具有搜索等功能。