我正在使用一个 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# 示例都很满意,因为它们都可以使用。
我们将不胜感激任何帮助。
最佳答案
我会建议您使用非常简单的方法。
1).您基于 html 的复选框没问题。
2).只需在其中添加一个 JavaScript 事件 onClick="functionName('labelValue')"并将标签的值传递给它。
3).在您的表单上添加服务器端隐藏字段。
4).现在,每次调用追加值的函数都将作为参数和分隔符(如“,”)发送到服务侧隐藏字段的值。
5).现在,在提交页面时打开按钮时,您将在隐藏字段中获得服务器端的值。
6).使用 .split(',') 拆分隐藏字段值,您将获得数组中的所有值。
关于c# - 带有复选框的 asp.net 下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32604087/