Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jqGrid日期选择器是';t正在复杂搜索对话框中初始化_Jqgrid_Jquery Ui Datepicker - Fatal编程技术网

jqGrid日期选择器是';t正在复杂搜索对话框中初始化

jqGrid日期选择器是';t正在复杂搜索对话框中初始化,jqgrid,jquery-ui-datepicker,Jqgrid,Jquery Ui Datepicker,我有一个带有“multipleSearch=true”和“multipleGroup=true”的jqGrid来允许复杂的搜索 我为列设置了“stype”(在我的例子中,这包括“日期”、“文本”、“整数”和“货币”) 我还为DatePicker和AutoComplete插件分别为“date”和“text”列提供了“dataInit”函数 当我打开搜索对话框时,会调用AutoComplete“dataInit”函数,但不会调用DatePicker“dataInit”函数 这似乎是因为“dataIn

我有一个带有“multipleSearch=true”和“multipleGroup=true”的jqGrid来允许复杂的搜索

我为列设置了“stype”(在我的例子中,这包括“日期”、“文本”、“整数”和“货币”)

我还为DatePicker和AutoComplete插件分别为“date”和“text”列提供了“dataInit”函数

当我打开搜索对话框时,会调用AutoComplete“dataInit”函数,但不会调用DatePicker“dataInit”函数

这似乎是因为“dataInit”函数是在创建新筛选器时触发的,并且基于第一列的“stype”

(我怀疑当用户从“搜索”对话框的下拉列表中选择一列时会触发该选项。)

当用户希望搜索“日期”字段并禁用其他字段“样式”时,是否有方法显示日期选择器

我在下面包含了相关的代码片段:

var DatePickerCfg = { id: 'DatePicker',dateFormat: 'dd/mm/yy',minDate: new Date(1990,0,1),maxDate: new Date(2099,12,31),showOn: 'focus' };
var AutoCompleteCfg = { id: 'AutoComplete',source: '' };



var formatoptions = {};
var searchoptions = {};


else if (Field['Type'] == '[datetime]')
{
 stype = 'date';
 formatoptions = {srcformat: 'Y-m-dTH:i:s', newformat: 'd/m/Y g:i:s A'};
 searchoptions = {sopt: ['eq','ne','lt','le','gt','ge'], dataInit: function(el) {setTimeout(function() {jQuery(el).datepicker(DatePickerCfg);}, 200);}};
}
else {searchoptions = {sopt: ['eq','ne','lt','le','gt','ge','bw','bn','ew','en','cn','nc'], dataInit:function(el) {setTimeout(function() {jQuery(el).autocomplete(AutoCompleteCfg);},200);}};}

colModel.push({name:Field['Field'], index:Field['Field'], align:Field['Align'], sortable:true, stype:stype, formatter:stype, formatoptions:formatoptions, searchoptions:searchoptions});

我不必使用搜索对话框,但在使用内联编辑时遇到了类似的问题。问题是DatePicker需要知道它将要处理的DOM元素。dataInit将提前触发。我确信这就是为什么您要使用setTimeout函数的原因,文档中说它可以作为一种替代方法使用——奇怪的是它不起作用

我通过以下方法解决了这个问题:

colModel:[ {classes:'applyDatePicker',edittype:"checkbox"
当行进入编辑模式时,有一个回调函数

function onEditRow(rowId) { 
    var dp = jQuery('.applyDatePicker>input[type="text"]');
    jQuery(dp).each(function () {
        jQuery(this).bind('click', function () {
            jQuery(this).datepicker();
            jQuery(this).focus();
        });
    });
}

也许您可以使用类似的方法,但可以将其应用于余波搜索回调函数中?

这是我的错。。。我已将日期列上的样式设置为“日期”,而不是“文本”。stype指的是搜索对话框中的输入类型,而不是数据类型。(我通过搜索源代码发现了这一点)

我注意到Trirand网站上的各种C#和VB示例中,他们成功地实现了这一点。。。当然,他们的代码中没有任何线索,因为他们使用的是专有的服务器端库。参见下面的链接:在他们的“SetUpSearchDialogMultipleGrid”函数中,他们明确地将搜索对话框配置为使用数据采集器,但它全部在C#和VB.Net中,没有实际代码详细说明他们真正在做什么。