在jquery jqgrid中,是否有延迟下拉直到被选中?

时间:2013-03-16 04:46:13

标签: jquery ajax jqgrid

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

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

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分:1)

我认为你也可以在服务器端做到这一点,在代码中你可以添加一个if语句来检查$ _POST [“_ search”]里面,如果这是真的,那么在$ _POST里面循环,查找是否dropdown-search条件已发布,如果不是,则回显一些空白或任何停止代码,如果是,则继续从DB加载数据。

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