【问题标题】:Populate a DropDownList with AJAX使用 AJAX 填充 DropDownList
【发布时间】:2026-01-26 05:15:02
【问题描述】:

我有一个很长的下拉列表项目列表。由于列表很长,如果用户实际单击下拉列表以展开它,我只想显示列表中的项目。我找到了各种关于如何将 AJAX 与级联下拉列表一起使用的教程,但没有一个解释是否可以只有一个下拉列表在用户展开时填充 AJAX。

是否有任何我错过的 AJAX 工具包附带的扩展程序?实现这一目标的最佳方法是什么?

谢谢, 本

【问题讨论】:

    标签: asp.net ajax asp.net-ajax drop-down-menu ajaxcontroltoolkit


    【解决方案1】:

    我会这样做:

    列表中有一个空项目。当下拉列表获得焦点时,您将该项目更改为“正在加载”或类似的内容。然后你就可以进行你想要的 ajax 调用了。

    一旦完成,您就可以从下拉列表中取消绑定焦点事件,这样您就不会重新加载后续的焦点事件。

    好像做这样的事情不会太难。

    如果你需要帮助,我会看看能否在 jsfiddle 上搞出点东西来。

    编辑:顺便问一下关于扩展器的问题,我对此一无所知。

    编辑 2:你可以尝试这样的事情:

    $(document).ready(
        function()
        {
           $("#theSelect").bind("focus", function()
                                {
                                    $("option:first", this).html("Loading...");
                                    setTimeout(AjaxSuccessCall, 2000);
                                });
        });
    
    function AjaxSuccessCall(data)
    {
        var select = $("#theSelect");
        select.unbind("focus");
        select.children("option").remove();
    }
    

    【讨论】:

    • 您好 spinon,感谢您的回复。你知道任何会使用这种方法的教程吗?我只是从整个 AJAX 开始,所以不太确定要寻找什么。
    • 感谢 Spinon 的示例,我试试看。干杯。
    • 在焦点事件中我有 settimeout 调用。这只是你放置 AJAX 调用的一个存根。只是想确保我清除了这一点。