6

我正在使用jqgrid,并且我有一个带有下拉列表的过滤器行,以允许人们从项目列表中进行选择。我认为加载所有下拉列表会浪费很多周期,因为人们可能不会选择其中任何一个。

无论如何都要推迟 ajax 调用以获取下拉列表,直到一个人实际单击下拉过滤器中的箭头。我看到其他一些网格库可以做到这一点。

4

2 回答 2

3

看一下这个:

标记

<select id="ddl">
    <option value="-1">Select One</option>
</select>

jQuery :

$("body").delegate("#ddl", "focus",function(event){
    //ajax call here, and then append items
    $(this).append("<option value='1'>Option 1</option>");
    $(this).append("<option value='2'>Option 2</option>");
    $(this).append("<option value='3'>Option 3</option>");
    $(this).append("<option value='4'>Option 4</option>");
    $(this).append("<option value='5'>Option 5</option>");
});

jsfiddle:http: //jsfiddle.net/9asfG/

于 2013-03-29T21:41:38.917 回答
1

我认为您也可以在服务器端执行此操作,在代码中您可以添加一个 if 语句来检查 $_POST["_search"] 内部,如果这是真的,则在 $_POST 内部循环,查找下拉搜索条件已发布,如果否,则回显空白或任何内容以停止代码,如果是,则继续从数据库加载数据。

PS.:我个人的看法,“延迟”结果可能不是一个好主意,因为用户可能不知道他需要先选择下拉菜单,从用户体验的角度来看,这不是一个好的设计。

于 2013-04-03T14:00:34.997 回答