Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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
Jquery 释放JQGrid Multiselect工具栏,以便在从服务器重新加载数据时刷新_Jquery_Jqgrid_Jquery Ui Multiselect - Fatal编程技术网

Jquery 释放JQGrid Multiselect工具栏,以便在从服务器重新加载数据时刷新

Jquery 释放JQGrid Multiselect工具栏,以便在从服务器重新加载数据时刷新,jquery,jqgrid,jquery-ui-multiselect,Jquery,Jqgrid,Jquery Ui Multiselect,我有下面的代码,当我回调服务器重新加载网格时,我的下拉过滤器不会基于列数据刷新 页面加载后,网格加载会很好,下拉过滤器会加载相应的数据,不包括处于取消或过期状态的报价。当用户单击取消复选框时,网格将重新加载,数据现在包括取消状态。问题是“状态名称”下拉工具栏过滤器现在不包括“已取消”(或“已过期”(如果选中))的新状态。从我在网上看到的情况来看,下拉过滤器应该根据新数据重新加载。我错过了什么 $(document).ready(function () { $("#ckRecentView

我有下面的代码,当我回调服务器重新加载网格时,我的下拉过滤器不会基于列数据刷新

页面加载后,网格加载会很好,下拉过滤器会加载相应的数据,不包括处于取消或过期状态的报价。当用户单击取消复选框时,网格将重新加载,数据现在包括取消状态。问题是“状态名称”下拉工具栏过滤器现在不包括“已取消”(或“已过期”(如果选中))的新状态。从我在网上看到的情况来看,下拉过滤器应该根据新数据重新加载。我错过了什么

$(document).ready(function () {
    $("#ckRecentViewed").on('change', function (e) {
        loadGrid();
    });

    $("#ckCanceled").on('change', function (e) {
        loadGrid();
    });

    $("#ckExpired").on('change', function (e) {
        loadGrid();
    });

    $("input:radio:checked").data("chk", true);
    $("input:radio").click(function () {
        $("input[name='" + $(this).attr("name") + "']:radio").not(this).removeData("chk");
        $(this).data("chk", !$(this).data("chk"));
        $(this).prop("checked", $(this).data("chk"));
        $(this).button('refresh'); // in case you change the radio elements dynamically
        loadGrid();
    });

    $("#chkInMyStep").on('change', function (e) {
        loadGrid();
    });

    $('#dvWrapperFilter').on('click', function () {
        $("#dvFilters").slideToggle(function () {
            if ($('#imgHdrPlusMinus').attr('src').indexOf("plus") > 0) {
                $('#imgHdrPlusMinus').attr('src', $('#imgHdrPlusMinus').attr('src').replace("plus", "minus"));
            } else {
                $('#imgHdrPlusMinus').attr('src', $('#imgHdrPlusMinus').attr('src').replace("minus", "plus"));
            }
        });
    });
});

var statusIds = '0,1,3,4,5,6';

var cols = [
    { index: 'CTSID', name: 'CTSID', align: 'left', sortable: true, search: true, width: '20%' },
    { index: 'CustomerName', name: 'CustomerName', align: 'left', sortable: true, search: true, width: '60%' },
    { label: 'Terr', index: 'Territory', name: 'Territory', align: 'center', sortable: true, search: true, width: '20%' },
    { label: 'Zone Manager', index: 'CZMName', name: 'CZMName', align: 'left', sortable: true, search: true, width: '50%' },
    { label: 'Status', index: 'StatusName', name: 'StatusName', align: 'left', sortable: true, width: '30%' },
    { label: 'Version', index: 'VersionNumber', name: 'VersionNumber', align: 'center', sortable: true, search: true, width: '18%' },
    { label: 'Workflow Step', index: 'WorkflowName', name: 'WorkflowName', align: 'left', sortable: true, width: '30%' },
    {
        label: 'Expiration Date', index: 'EffectiveEndDate', name: 'EffectiveEndDate', sortable: true, width: '40%', sorttype: "date", formatter: "date", formatoptions: { newformat: "m/d/y" }, align: 'center',
        searchoptions: {
            sopt: ["eq"], // or any other search operation
            dataInit: function (element) {
                var self = this; // save the reference to the grid
                $(element).datepicker({
                    dateFormat: 'mm/dd/yy',
                    changeYear: true,
                    changeMonth: true,
                    showButtonPanel: true,
                    onSelect: function () {
                        setTimeout(function () {
                            self.triggerToolbar();
                        }, 0);
                    }
                });
            }
        }
    },
    {
        label: '', index: 'action', name: 'action', sortable: false, align: 'center', search: false, width: '20%', formatter: addLink, cellattr: function () {
            return "title=\"Click to view quote details\"";
        }
    }
];

var actionUrl = 'Dashboard/GetUserWorkflowDashboard';

var getUniqueNames = function (columnName, mydata) {
    var texts = $.map(mydata, function (item) {
        return item[columnName];
    }),
        uniqueTexts = [], textsLength = texts.length, text, textsMap = {}, i;

    for (i = 0; i < textsLength; i++) {
        text = texts[i];
        if (text !== undefined && textsMap[text] === undefined) {
            // to test whether the texts is unique we place it in the map.
            textsMap[text] = true;
            uniqueTexts.push(text);
        }
    }
    return uniqueTexts;
},
    buildSearchSelect = function (uniqueNames) {
        var values = "";
        $.each(uniqueNames, function () {
            values += this + ":" + this + ";";
        });
        return values.slice(0, -1);
    },
    initMultiselect = function (searchOptions) {
        var $elem = $(searchOptions.elem),
            options = {
                selectedList: 2,
                height: "auto",
                checkAllText: "all",
                uncheckAllText: "no",
                noneSelectedText: "Any",
                open: function () {
                    var $menu = $(".ui-multiselect-menu:visible");
                    $menu.addClass("ui-jqdialog").width("auto");
                    $menu.find(">ul").css("maxHeight", "200px");
                }
            };
        if (searchOptions.mode === "filter") {
            options.minWidth = "auto";
        }
        $elem.multiselect(options);
        $elem.siblings("button.ui-multiselect").css({
            width: "100%",
            margin: "1px 0",
            paddingTop: ".3em",
            paddingBottom: "0"
        });
    },
    setSearchSelect = function (columnName, data) {
        var values = buildSearchSelect(getUniqueNames.call(this, columnName, data));
        $(this).jqGrid("setColProp", columnName, {
            stype: "select",
            searchoptions: {
                value: values,
                sopt: ["in"],
                attr: {
                    multiple: "multiple",
                    size: 4
                },
                selectFilled: initMultiselect
            }
        });
    },
    myDefaultSearch = "cn",

beforeProcessingHandler1 = function (data) {
    var $this = $(this), p = $this.jqGrid("getGridParam");
    // !!! it will be called only after loading from the server
    // datatype is always "json" here
    setSearchSelect.call(this, "WorkflowName", data);
    setSearchSelect.call(this, "StatusName", data);
    setSearchSelect.call(this, "CZMName", data);

    if (this.ftoolbar === true) {
        //if the filter toolbar is not already created
        $("#gs_" + this.id + "WorkflowName").multiselect("destroy");
        $this.jqGrid('destroyFilterToolbar');

        $("#gs_" + this.id + "StatusName").multiselect("destroy");
        $this.jqGrid('destroyFilterToolbar');

        $("#gs_" + this.id + "CZMName").multiselect("destroy");
        $this.jqGrid('destroyFilterToolbar');
    }

    if (p.postData.filters) {
        p.search = true;
    }

    $this.jqGrid("filterToolbar", {
        stringResult: true,
        defaultSearch: myDefaultSearch,
        beforeClear: function () {
            $(this.grid.hDiv)
                .find(".ui-search-toolbar button.ui-multiselect")
                .each(function () {
                    $(this).prev("select[multiple]").multiselect("refresh");
                });
            $(this.grid.hDiv)
                .find(".ui-search-toolbar button.ui-multiselect")
                .each(function () {
                    // synchronize jQuery UI Multiselect with <select>
                    $(this).prev("select[multiple]").multiselect("refresh");
                }
                ).css({
                    width: "98%",
                    marginTop: "1px",
                    marginBottom: "1px",
                    paddingTop: "3px"
                });
        }
    });
};

$(function () {
    //Initialize jqgrid
    $("#gridWorkflowDashboard").jqGrid({
        datatype: 'json',
        url: actionUrl,
        mType: 'GET',
        colModel: cols,
        rowList: [25, 50, 100],
        pager: "#dvDashboardPager",
        forceClientSorting: true,
        loadonce: true,
        beforeProcessing: beforeProcessingHandler1,
        sortname: "EffectiveEndDate",
        sorttype: "date",
        sortorder: "desc",
        rownumbers: false,
        rowNum: 25,
        gridview: true,
        hidegrid: false,
        height: "100%",
        autowidth: true,
        search: true,
        altclass: "GridRows",
        recreateFilter: true,
        hoverrows: true,
        viewsortcols: [true, 'vertical', true],
        ignoreCase: true,
        viewrecords: true
    }).jqGrid("navGrid", { add: false, edit: false, del: false, search: false, refresh: true });
});

function loadGrid() {
    page = $("#gridWorkflowDashboard").getGridParam('page');
    var ids = statusIds;

    var pExperationDate = $('input:radio[name="rdExpiration"]:checked').val();
    var pToDate = $("#datepickerTo").val();
    var pFromDate = $("#datepickerFrom").val();
    var pRecentView = $("#ckRecentViewed")[0].checked;
    var pInMyStep = $("#chkInMyStep")[0].checked;
    var pCanceled = $("#ckCanceled")[0].checked;
    var pExpired = $("#ckExpired")[0].checked;

    if (pCanceled) {
        ids += ',-1';
    }
    else {
        ids = statusIds;
    }

    if (pExpired) {
        ids += ',2';
    }
    else {
        ids = statusIds;

        if (pCanceled) {
            ids += ',-1';
        }
    }

    var data = { ExperationDays: pExperationDate, toDate: pToDate, fromDate: pFromDate, recentView: pRecentView, InMyStep: pInMyStep, StatusIds: ids };

    $.ajax(actionUrl, {
        contentType: 'application/json',
        type: 'GET',
        datatype: 'json',
        loadonce: true,
        data: data,
        success: function (result) {
            $("#gridWorkflowDashboard").jqGrid('clearGridData');
            //$("#gridWorkflowDashboard").jqGrid('destroyFilterToolbar');
            $("#gridWorkflowDashboard").jqGrid('setGridParam',
                {
                    datatype: 'local',
                    data: result
                }).trigger("reloadGrid", [{ page: page }]);
        },
        error: function (jqXHR, textStatus, errorThrown) {
            alert(jqXHR.responseText);
        }
    });
}

function addLink(cellvalue, options, rowObject) {
    return "<input type='button' class='btn btn-info btn-xs grid-btn' value='View' onclick='ViewQuote(\"" + rowObject.CTSID + "\")'\>";
}

function ViewQuote(value) {
    window.location.href = '/CPQ/Quote/EditQuote/' + value;
}

$(function () {
    $("#datepickerFrom").datepicker({
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        dateFormat: 'mm/dd/yy',
        minDate: "-8Y",
        maxDate: "0Y",
        onClose: function (dateText, inst) {
            loadGrid();
        }
    }); 

    $("#datepickerTo").datepicker({
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        dateFormat: 'mm/dd/yy',
        minDate: "-8Y",
        maxDate: "0Y",
        onClose: function (dateText, inst) {
            loadGrid();
        }
    }); 
});
$(文档).ready(函数(){
$(“#ckrecentview”)。关于('change',函数(e){
loadGrid();
});
$(“#ckcancelled”)。关于('change',函数(e){
loadGrid();
});
$(“#ckExpired”)。关于('change',函数(e){
loadGrid();
});
$(“输入:收音机:选中”)。数据(“chk”,真);
$(“输入:收音机”)。单击(函数(){
$(“输入[name=”+$(this.attr(“name”)+”]:radio”).not(this.removeData(“chk”);
$(this.data(“chk”),!$(this.data(“chk”));
$(this.prop(“选中”和$(this.data(“chk”));
$(this).button('refresh');//以防动态更改单选元素
loadGrid();
});
$(“#chkInMyStep”)。关于('change',函数(e){
loadGrid();
});
$('#dvWrapperFilter')。在('click',函数(){
$(“#dvFilters”).slideToggle(函数(){
if($('imgHdrPlusMinus').attr('src').indexOf(“plus”)>0){
$('imgHdrPlusMinus').attr('src'),$('imgHdrPlusMinus').attr('src')。替换(“加”、“减”);
}否则{
$('imgHdrPlusMinus').attr('src'),$('imgHdrPlusMinus').attr('src')。替换(“减”、“加”);
}
});
});
});
var statusIds='0,1,3,4,5,6';
var cols=[
{索引:'CTSID',名称:'CTSID',对齐:'left',可排序:true,搜索:true,宽度:'20%',
{索引:'CustomerName',名称:'CustomerName',对齐:'left',可排序:true,搜索:true,宽度:'60%',
{label:'Terr',index:'Territory',name:'Territory',align:'center',sortable:true,search:true,width:'20%},
{label:'Zone Manager',index:'CZMName',name:'CZMName',align:'left',sortable:true,search:true,width:'50%},
{label:'Status',index:'StatusName',name:'StatusName',align:'left',sortable:true,width:'30%},
{label:'Version',index:'VersionNumber',name:'VersionNumber',align:'center',sortable:true,search:true,width:'18%},
{标签:“工作流步骤”,索引:“WorkflowName”,名称:“WorkflowName”,对齐:“left”,可排序:true,宽度:“30%”,
{
标签:'Expiration Date',索引:'EffectiveEndDate',名称:'EffectiveEndDate',可排序:true,宽度:'40%',排序类型:'Date',格式化程序:'Date',格式化选项:{newformat:'m/d/y},对齐:'center',
搜索选项:{
sopt:[“eq”],//或任何其他搜索操作
dataInit:函数(元素){
var self=this;//保存对网格的引用
$(元素).日期选择器({
日期格式:“mm/dd/yy”,
变化年:是的,
变化月:对,
showButtonPanel:是的,
onSelect:function(){
setTimeout(函数(){
self.triggerToolbar();
}, 0);
}
});
}
}
},
{
标签:'',索引:'action',名称:'action',可排序:false,对齐:'center',搜索:false,宽度:'20%',格式化程序:addLink,cellattr:function(){
return“title=\”点击查看报价详情\”;
}
}
];
var actionUrl='Dashboard/GetUserWorkflowDashboard';
var getUniqueNames=函数(columnName,mydata){
变量文本=$.map(mydata,函数(项){
返回项目[列名称];
}),
uniquetext=[],textsLength=text.length,text,textsMap={},i;
对于(i=0;iul”).css(“最大高度”,“200px”);
}
};
if(searchOptions.mode==“过滤器”){
options.minWidth=“自动”;
}
$elem.multiselect(选项);
$elem.sibbins(“button.ui multiselect”).css({
宽度:“100%”,
边距:“1px0”,
paddingTop:“.3em”,
填充底部:“0”
});
},
setSearchSelect=函数(列名称、数据){
var values=buildSearchSelect(getUniqueNames.call(this,columnName,data));
$(this).jqGrid(“setColProp”,columnName{
stype:“选择”,
搜索选项:{
价值:价值,
sopt:[“在”],
属性:{
亩
beforeProcessingHandler1 = function (data) {
....
    $this.jqGrid("destroyFilterToolba");
    $this.jqGrid("filterToolbar",{...});
}