c# - 带有复选框的 asp.net 下拉列表

标签 c# html asp.net vb.net

我正在使用一个 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/

相关文章:

javascript - 为网站滚动添加效果

javascript - 无法在 iOS 9 上使用 fastclick 输入文本区域

c# - *.csproj 中的 usevshostingprocess 是什么?

asp.net - 将可为空的 int 绑定(bind)到 asp :TextBox

c# - 需要帮助理解 _set_security_error_handler()

c# - 在 C# 中查找最大的产品

javascript - 如何处理两个javascript事件?

ASP.NET:带有文本框的复选框列表?

c# - 我将如何为我的应用程序窗口的一部分拍摄快照?

c# - 如何读取用户按下的键并将其显示在控制台上?