组合框下拉列表

时间:2011-07-28 14:15:00

标签: jquery asp.net combobox drop-down-menu

我正在寻找一个将DropDownList转换为ComboBox的简单控件或jQuery插件。

我目前正在使用Ajax Combo Box,我刚才已经足够了。我试图使组合框100%宽度,当从组合框调整大小到所选列表项宽度的列表中选择项目时,它们的布局总是搞砸了。

标准的asp.net DropDownList只是工作,并没有任何这些问题,但我需要ComboBox的自动完成功能。

是否有一个jQuery插件或类似的东西我可以调用document.ready将标准的asp.net下拉列表转换为ajax组合框样式组合?

代码到目前为止:

<script src="../../JavaScripts/jquery.min.js" type="text/javascript"></script>
<script src="../../JavaScripts/jquery-ui.min.js" type="text/javascript"></script>
<script type="text/javascript">

    $(document).ready(function () {
        $('#<%=ddlProjectCode.ClientID %>').combobox();
        alert('test');
    });

</script>

等:

 <asp:DropDownList ID="ddlProjectCode" runat="server" AppendDataBoundItems="True" AutoCompleteMode="SuggestAppend"
                                AutoPostBack="True" DropDownStyle="DropDownList" RenderMode="Block" Width="100px"
                                OnSelectedIndexChanged="ddlProjectCode_SelectedIndexChanged" CssClass="comboBoxInsideModalPopup">
                            </asp:DropDownList>

但现在我收到了错误:

object不支持方法'combobox'的这个属性

1 个答案:

答案 0 :(得分:2)

我在几个项目中使用jqueryui combobox

我只是从该示例中复制了脚本,并对其进行了一些项目特定的更改。

对于100%宽度,您可以尝试这样的事情:http://jsfiddle.net/KnBpt/

比Ajax控件工具包版本工作得更好,它甚至可以在你输入名称的一部分时找到一个值,asp:Combobox只有在它以你的值开头才能找到它。

要在键入值时使AutoPostback工作,您必须在原始select元素上触发.change():

$('.ui-autocomplete-input').bind('autocompleteselect', function(){ 
    $(this).prev('select').change();
});

这会在每个jqueryui自动完成和组合框的值发生变化时触发.change(),并且会自动触发AutoPostback(如果设置为true),而不知道ClientID或其他内容。