选择项目后,保持下拉列表打开

时间:2015-09-24 20:42:26

标签: javascript asp.net .net vb.net drop-down-menu

我有一个aspx页面,其中包含HTML下拉列表中的两个复选框列表。

一个是用HTML编写的,根据未检查的内容和内容显示\隐藏columsn在数据表中。

另一个是带有asp.net复选框列表控件的下拉列表,这样我就可以根据所选选项轻松地将值传递回数据库,而无需查看Request.Form("...")

我希望解决的一个问题是如何在单击复选框项后保持下拉列表打开。列表\下拉列表中出现相同的行为,因此希望它可以是两者的单一解决方案。

我建立一个列表的代码是这样的

<div class="row" style="float: right; padding-right: 15px">
            <div class="col-lg-12">
                <div class="button-group">
                    <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
                        <span class="glyphicon glyphicon-list-alt"></span><span class="caret"></span>
                    </button>
                    <ul class="dropdown-menu">
                        <asp:PlaceHolder ID="ColSelectorPlaceHolder" runat="server"></asp:PlaceHolder>
                    </ul>
                </div>
            </div>
        </div>

然后构建列表并将其传递回此处的占位符

Dim html As New StringBuilder()

For value As Integer = 0 To dictofClassAndCol.Count
    If (value = dictofClassAndCol.Count) Then
       Exit For
    End If
    Dim item = dictofClassAndCol.ElementAt(value)
    Dim key As String = item.Key
    Dim val As String = item.Value
    Dim line = String.Format("<li style='padding-left: 10px'><label class='small' tabindex='-1'><input type='checkbox' checked='true' value='{0}'/>{1}</label></li>", key.Replace(" ", ""), val)
    html.AppendLine(line)

Next

Return html

另一个是这样的构建

<div class="btn-group" style="padding-top: 5px">
     <a class="btn btn-default dropdown-toggle" data-toggle="dropdown" href="#">Report Status <span class="caret"></span></a>
     <ul class="dropdown-menu" style="padding-left: 10px">
        <asp:PlaceHolder ID="statusSelectorPlaceHolder" runat="server"></asp:PlaceHolder>
            <asp:CheckBoxList ID="statuscblist" runat="server">

            </asp:CheckBoxList>
     </ul>

</div>

然后这些项目就像这样构建

If Page.IsPostBack = False Then
            For Each item In _dictOfStatus
                Dim status As New ListItem
                status.Value = item.Value
                status.Text = item.Key
                status.Selected = True
                statuscblist.Items.Add(status)
            Next
        End If

任何和所有帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

找到了我的答案

$(document).ready(function() {
$("#statusSelctor .dropdown-menu").on({
    "click": function (e) {
        e.stopPropagation();
    }
});

});

$(document).ready(function () {
$("#columns .dropdown-menu").on({
    "click": function (e) {
        e.stopPropagation();
    }
});

});