JqG​​rid,DatePicker在选择时没有工具栏中的值

时间:2011-11-14 14:12:30

标签: jquery jqgrid datepicker jqgrid-asp.net

我正在尝试在JQGrid工具栏上添加Datepicker过滤器。当我点击日期过滤器时,Datepicker出现没问题,但是当我选择我的日期时,什么也没发生。我选择的日期没有显示在工具栏过滤器和诅咒中,没有搜索启动。 我错过了什么? 这是我的代码:

colModel: [                     
    { name: 'Period', index: 'Period', align: 'left', formatter: 'date',
        search: true,
        searchoptions: {
        dataInit: function (el) {
            $(el).datepicker({
                changeYear: true,
                changeMonth: true,
                showButtonPanel: true,
                dateFormat: 'dd-mm-yy',
                onSelect: function(dateText, inst) {
                    $("#grid_id")[0].triggerToolbar();
                }
            });
        }
    }}
]

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

搜索工具栏的问题是来自onSelect回调的代码可能过早执行。所以你应该在另一个线程中启动代码并允许当前的工作完成到最后:

colModel: [                     
    { name: 'Period', index: 'Period', align: 'left', formatter: 'date',
        search: true,
        searchoptions: {
        dataInit: function (el) {
            $(el).datepicker({
                changeYear: true,
                changeMonth: true,
                showButtonPanel: true,
                dateFormat: 'dd-mm-yy',
                onSelect: function () {
                    if (this.id.substr(0, 3) === "gs_") {
                        // call triggerToolbar only in case of searching toolbar
                        setTimeout(function () {
                            $("#grid_id")[0].triggerToolbar();
                        }, 100);
                    }
                }
            });
        }
    }}
]

我插入的当前id字段的<input>测试,以确保我们不会尝试在搜索对话框中使用triggerToolbar。我的意思是,可以将搜索工具栏与advanced searching组合用于简单搜索,以获得更复杂的搜索请求。