Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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中重新加载页面后如何应用过滤器?_Jquery_Spring - Fatal编程技术网

在jQuery中重新加载页面后如何应用过滤器?

在jQuery中重新加载页面后如何应用过滤器?,jquery,spring,Jquery,Spring,在应用过滤器时,我在jquery中遇到了一个问题,这是第一次它工作得非常好 但是当我再次重新加载页面或分页时,过滤器不工作。 我需要再次应用过滤器,而不是一次性动态应用。 下面是.jsp和.js的代码片段 请仔细阅读并回复 .jsp : .js $(文档).ready(函数(){ var productsApiUrl=CTX_PATH+“/productProgramsDataable”; var productsTableOpts={ “bProcessing”:正确, “bStateSave

在应用过滤器时,我在jquery中遇到了一个问题,这是第一次它工作得非常好 但是当我再次重新加载页面或分页时,过滤器不工作。 我需要再次应用过滤器,而不是一次性动态应用。 下面是.jsp和.js的代码片段 请仔细阅读并回复

.jsp

:
.js
$(文档).ready(函数(){
var productsApiUrl=CTX_PATH+“/productProgramsDataable”;
var productsTableOpts={
“bProcessing”:正确,
“bStateSave”:正确,
“iDisplayLength”:100,
“aaSorting”:[
[0,“描述”]
],
“sAjaxDataProp”:“,
“sAjaxSource”:productsApiUrl,
“aoColumnDefs”:[
{
“mDataProp”:“在线状态”,
“sClass”:“中心”,
“sClass”:“在线课程”,
“目标”:[13],
“fnRender”:函数(oObj、sVal){
var s=oObj.aData[“onlineStatusPid”];
var pid=oObj.aData[“plannerId”];
如果(oObj.aData[“programProductStatus”]=“保持”){
返回“”;
}否则{
if(oObj.aData[“onlineStatus”]=“待定”){
如果(oObj.aData[“programProductStatus”]!=“保持”){
返回“”+
'' +
“日期”;
}否则{
返回“”;
}
}else if(oObj.aData[“onlineStatus”]=='NOPRODUCT'| | oObj.aData[“onlineStatus”]==null){
如果(oObj.aData[“programProductStatus”]!=“保持”){
返回“”+
'' +
“无产品日期”;
}否则{
返回“”;
}
}否则{
如果(oObj.aData[“programProductStatus”]!=“保持”){
返回“”+
''+oObj.aData[“在线状态”]+'';
}否则{
返回“”;
}
}
}
},
}
],
“语言”:{
“正在处理”:“正在加载表,请稍候。”,
“sInfoEmpty”:“无需显示的条目”,
“sEmptyTable”:“没有可用的已提交计划表。”
},
“fnRowCallback”:函数(nRow、aData、iDisplayIndex、iDisplayIndexFull){
$(nRow).addClass(aData.highLevelStatus);
$(nRow).attr(“id”、“ProductsId”+iDisplayIndex);
var-tdCount=0;
$(nRow).find(“td”).each(function(){
if($(this).find('input').attr(“class”)=='CompletedwithDate'){
$(this.css)({
“背景色”:“绿色”,
“颜色”:“fff”
});
}
if(!$(this).hasClass(“隐藏列”)){
$(this.find(“[id^=pending]”)。每个(函数(){
tdCount=tdCount+1;
})    
}                          
})
如果(tdCount==0){
$(nRow).attr(“可见”,假);
}
返回nRow;
},
};
var ttable=$('#productsTable').DataTable(productsTableOpts);
$(“每个产品的状态类型”).live(“更改”,功能(){
var productStatusType=$(“#产品的状态类型”).val();
var productStatusForEachProduct=$(“每个产品的状态类型”).val();
样本(productStatusType、productStatusForEachProduct);
$.
<span class="pd_planner_filterbyspan"><spring:message code="Filter_By"/>:   </span> 
                        <select id="status_Type_for_products" name="statusType">
                            <c:choose>                        
                            <c:when test="${productStatus eq 'Pending'}">
                              <option  value="Choose One"><spring:message code="chooseOne"/></option>
                              <option  value="All"><spring:message code="All"/></option>
                              <option selected value="Pending"><spring:message code="Pending"/></option>
                              <option value="Completed"><spring:message code="Completed"/></option>
                              <option value="No product"><spring:message code="Noproduct"/></option>
                            </c:when>
                            <c:when test="${productStatus eq 'Completed'}">
                              <option  value="Choose One"><spring:message code="chooseOne"/></option>
                              <option  value="All"><spring:message code="All"/></option>
                              <option  value="Pending"><spring:message code="Pending"/></option>
                              <option selected value="Completed"><spring:message code="Completed"/></option>
                              <option value="No product"><spring:message code="Noproduct"/></option>
                            </c:when>
                            <c:when test="${productStatus eq 'No product'}">
                              <option  value="Choose One"><spring:message code="chooseOne"/></option>
                              <option  value="All"><spring:message code="All"/></option>
                              <option  value="Pending"><spring:message code="Pending"/></option>
                              <option  value="Completed"><spring:message code="Completed"/></option>
                              <option selected value="No product"><spring:message code="Noproduct"/></option>
                            </c:when>
                            </c:choose>
                        </select>
                        </div>
                        <input type="hidden" id="status_Type_for_each_product_id" value="${eachProductStatus}" />
                        <div class=" " style="float: left; margin:10px;">           
                            <span class="pd_planner_filterbyspan"><spring:message code="FilterByProduct"/></span> 
                            <select id="status_Type_for_each_product" name="statusType">
                            <c:choose>                          
                            <c:when test="${eachProductStatus eq 'onlineCourse'}">
                             <option  value="Choose One"><spring:message code="chooseOne"/></option>                       
                              <option  value="onlineCourse" selected="selected"><spring:message code="Online_Course"/></option>
                              <option  value="west"><spring:message code="West"/></option>
                            </c:when>
                            <c:when test="${eachProductStatus eq 'west'}">
                              <option  value="Choose One"><spring:message code="chooseOne"/></option>                           
                              <option  value="onlineCourse"><spring:message code="Online_Course"/></option>
                              <option  value="west" selected="selected"><spring:message code="West"/></option>                           
                            </c:when>
                            </c:choose>                     
                            </select>
                        </div>                                                  
                            <table  style="width: 100%;display: block; overflow-x:auto; " class="product_list_table" id="productsTable">                                
                                <thead>
                                    <tr>                                                                                
                                        <th ><spring:message code="Online_Course"/></th>
                                        <th ><spring:message code="West"/></th>                                     
                                    </tr>   
                                </thead>
                            </table>



.js

$(document).ready(function() {
    var productsApiUrl = CTX_PATH + "/productProgramsDataTable";

    var productsTableOpts = {
        "bProcessing": true,
        "bStateSave": true,
        "iDisplayLength": 100,
        "aaSorting": [
            [0, "desc"]
        ],
        "sAjaxDataProp": "",
        "sAjaxSource": productsApiUrl,
        "aoColumnDefs": [
                {
                "mDataProp": "onlineStatus",
                "sClass": "center",
                "sClass": "onlineCourse",
                "aTargets": [13],
                "fnRender": function(oObj, sVal) {
                    var s = oObj.aData["onlineStatusPid"];
                    var pid = oObj.aData["plannerId"];
                    if (oObj.aData["programProductStatus"] == 'HOLD') {

                        return '';
                    } else {
                        if (oObj.aData["onlineStatus"] === 'PENDING') {
                            if (oObj.aData["programProductStatus"] != 'HOLD') {
                                return '<input type="checkbox" name="onlineCheck" id="pendingOnlineCheckId' + s + '" value="' + pid + '" checked="checked" class="pendingClass"/>' +
                                    '<input type="button" value="Add" data-id="showcombo" id="showRadioCombo" style="margin-right: .2em ; background: #333;color: #fff;border-radius: 10px; font-size: 11px; width: 40px;border-left-width: 0px"/>' +
                                    '<div style="display: none;" id="radioCombo" > <input type="radio" id="radioidonlineStatus' + s + '" class="' + s + '"/> <label id="labelId' + s + '">Date</label> <a href="javascript:" onclick="complete(\'' + s + '\')"><img border=0 src="' + CTX_PATH + '/resources/images/bullet_check.png"></a> <span id="Cancel_Button" ></span> </div>';
                            } else {
                                return '<input type="checkbox" value="' + oObj.aData["plannerId"] + '" id="ProductholdingCheckbox" />';
                            }
                        } else if (oObj.aData["onlineStatus"] === 'NOPRODUCT' || oObj.aData["onlineStatus"] == null) {
                            if (oObj.aData["programProductStatus"] != 'HOLD') {
                                return '<input type="checkbox" name="onlineCheck" id="onlineCheckId1' + s + '" value="' + pid + '"/>' +
                                    '<input type="button" value="Add" id="showRadioCombo" style="margin-right: .2em ; background: #333;color: #fff;border-radius: 10px; font-size: 11px; width: 40px;border-left-width: 0px;display: none;"/>' +
                                    ' <div style="display: none;" id="radioCombo" > <input type="radio" id="radioidonlineStatus' + s + '" class="' + s + '"/> <label id="labelId' + s + '">Date</label> <input type="image" src="' + CTX_PATH + '/resources/images/bullet_check.png" class="bullet_check" onclick="complete1(\'' + pid + '\',"ONLINECOURSE")" /> <span id="Cancel_Button" ></span> </div><span>No Product</span>';
                            } else {
                                return '';
                            }

                        } else {
                            if (oObj.aData["programProductStatus"] != 'HOLD') {
                                return '<input type="checkbox" name="onlineCheck" id="completedOnlineCheckId" class="CompletedwithDate" value="' + pid + '" checked="checked"/>' +
                                    '' + oObj.aData["onlineStatus"] + '';
                            } else {
                                return '';
                            }
                        }
                    }
                },
            }
        ],
        "oLanguage": {
            "sProcessing": "Table is loading, please wait.",
            "sInfoEmpty": 'No entries to show',
            "sEmptyTable": "No Submitted Planners Available."
        },
        "fnRowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
            $(nRow).addClass(aData.highLevelStatus);
            $(nRow).attr("id", "ProductsId" + iDisplayIndex);
            var tdCount=0;
            $(nRow).find("td").each(function() {

                if ($(this).find('input').attr("class") == 'CompletedwithDate') {

                    $(this).css({
                        "background-color": "green",
                        "color": "#fff"
                    });
                }

                if(!$(this).hasClass("hide_column")){
                      $(this).find("[id ^=pending]").each(function(){
                        tdCount =tdCount+1;
                      })    
                }                          
            })
            if(tdCount == 0){
                $(nRow).attr("visible",false);
            }

            return nRow;
        },

    };

    var ttable = $('#productsTable').DataTable(productsTableOpts);

    $("#status_Type_for_each_product").live("change", function() {
        var productStatusType = $("#status_Type_for_products").val();
        var productStatusForEachProduct = $("#status_Type_for_each_product").val();
        sample(productStatusType, productStatusForEachProduct);
        $.ajax({

            type: 'GET',
            url: CTX_PATH + '/form/programplanner/update/eachProductStatusType/' + productStatusForEachProduct,
            success: function(data) {

            }
        });
    });

    $("#status_Type_for_products").live("change", function() {
        var productStatusType = $("#status_Type_for_products").val();
        var productStatusForEachProduct = $("#status_Type_for_each_product").val();
        if (productStatusForEachProduct === 'Choose One' || productStatusType === 'All') {
            sample1(productStatusType);
        }
        if (productStatusForEachProduct != 'Choose One') {
            sample(productStatusType, productStatusForEachProduct);
        }

        $.ajax({

            type: 'GET',
            url: CTX_PATH + '/form/programplanner/update/productStatusType/' + productStatusType,
            success: function(data) {

            }
        });
    });

    $("[id ^=onlineCheckId]").live("change", function() {
        var programId = $(this).val();
        var productName = 'ONLINECOURSE';
        var flag = $(this).is(":checked");
        if (flag === true) {
            $.ajax({
                type: 'GET',
                datatype: "json",
                data: {
                    productName: productName,
                },
                url: CTX_PATH + "/forms/programplanner/products/addProductInDetails/" + programId,
                success: function(data) {

                    window.location.reload();
                }
            });
            $(this).next().next().next().hide();
            $(this).next().show();
        } else {

            $(this).next().hide();
            $(this).next().next().hide();
        }
    });

    $("[id ^=pendingOnlineCheckId]").live("change", function() {
        var programId = $(this).val();
        var productName = 'ONLINECOURSE';
        var flag = $(this).is(":checked");
        if (flag === true) {
            $(this).next().show();
        }
        if (flag === false) {
            $.ajax({
                type: 'GET',
                datatype: "json",
                data: {
                    productName: productName,
                },
                url: CTX_PATH + "/forms/programplanner/products/deleteProduct/" + programId,
                success: function(data) {

                    window.location.reload();
                }
            });
            $(this).next().hide();
        }
    });

    $("[id ^=completedOnlineCheckId]").live("change", function() {
       var flag = $(this).is(":checked");
        var productName = 'ONLINECOURSE';
        var programId = $(this).val();
        if (flag == false) {
            $.ajax({
                type: 'GET',
                datatype: "json",
                data: {
                    productName: productName,
                },
                url: CTX_PATH + "/forms/programplanner/products/deleteProduct/" + programId,
                success: function(data) {

                    window.location.reload();
                }
            });
        }
    });

function sample(productStatusType, productStatusForEachProduct) {
    $("[id ^= ProductsId]").hide();

    if (productStatusForEachProduct == 'onlineCourse') {
        if (productStatusType == 'Completed') {
            $(".product_list_table tbody tr td").each(function() {
                var statusClass = $(this).find('input').attr("class")
                var productClass = $(this).attr("class")


                if (statusClass === 'CompletedwithDate' && productClass === 'onlineCourse') {
                    var row = $(this).closest('tr');
                    row.show();
                }
            });
        }

        if (productStatusType == 'Pending') {
            $(".product_list_table tbody tr td").each(function() {
                var statusClass = $(this).find('input').attr("class")
                var productClass = $(this).attr("class")

                if (statusClass === 'pendingClass' && productClass === 'onlineCourse') {
                    var row = $(this).closest('tr');
                    row.show();
                }
            });
        }

        if (productStatusType == 'No product') {
            $(".product_list_table tbody tr td").each(function() {
                var statusClass = $(this).find('span').text()
                var productClass = $(this).attr("class")

                if (statusClass === 'No Product' && productClass === 'onlineCourse') {
                    var row = $(this).closest('tr');
                    row.show();
                }
            });
        }


        if (productStatusType == 'All') {
            $("[id ^= ProductsId]").show();

        }

    }
    }
}

function sample1(productStatusType) {
    $("[id ^= ProductsId]").hide();
    if (productStatusType == 'All') {
        $("[id ^= ProductsId]").show();

    }
    if (productStatusType == 'Pending') {
        $(".product_list_table tbody tr td").each(function() {
            if ($(this).find('input').attr("class") == 'pendingClass') {
                var row = $(this).closest('tr');
                row.show();
            }

        });

    } else if (productStatusType == 'Completed') {
        $(".product_list_table tbody tr td").each(function() {
            var val = $(this).find('input').attr("class")
            if (val == 'CompletedwithDate') {
                var row = $(this).closest('tr');
                row.show();
            }
        });
    } else if (productStatusType == 'No product') {
        $(".product_list_table tbody tr td").each(function() {
            var val = $(this).find('span').text();

            if (val == 'No Product') {
                var row = $(this).closest('tr');
                row.show();
            }
        });
    }
}