복붙노트

[JQUERY] 새 행이있는 jqGrid에 추가 된 후 어떻게 loadComplete을 발사?

JQUERY

새 행이있는 jqGrid에 추가 된 후 어떻게 loadComplete을 발사?

해결법


  1. 1.나는 사용자 정의 포맷터에 loadComplete에서 현재 코드를 제거 할 건의 할 것입니다. 사용자 정의 포맷터의 gridview와 함께 cellattr 또는 rowattr의 사용 : 사실은 그리드를 채울 수있는 가장 효과적인 방법입니다. 자세한 내용은 답변을 참조하십시오.

    나는 사용자 정의 포맷터에 loadComplete에서 현재 코드를 제거 할 건의 할 것입니다. 사용자 정의 포맷터의 gridview와 함께 cellattr 또는 rowattr의 사용 : 사실은 그리드를 채울 수있는 가장 효과적인 방법입니다. 자세한 내용은 답변을 참조하십시오.

    당신은 다음에 'cfgName'컬럼의 정의를 변경할 수 있습니다 :

    {name: 'cfgName', width: 80, classes: "myLink",
        formatter: function (cellValue, options, rowObject) {
            var converted = rowObject.converted === undefined ?
                    $(rowObject).find(">converted").text(): rowObject.converted,
                updateDate = rowObject.updateDate === undefined ?
                    $(rowObject).find(">updateDate").text(): rowObject.updateDate;
            return (isAlertedDate(updateDate) ? iconAlert: "") +
                (converted === "yes" ? convertIcon : "") +
                "<span>" + cellValue + "</span>";
        },
        cellattr: function () {
            return " title=\"Click here to go to ViewAllPage\"";
        }}
    

    당신은 당신의 현재 diffOf2Dates가 isAlertedDate의 구현의 내부 기능을 사용할 수 있습니다. 또한 나는 코드를보다 쉽게하기 위해 모든에서 링크 ()를 사용하지 않는 것이 좋습니다. 대신에 나는 클래스를 사용하는 것이의 "내 링크를"나는 다음과 같은 CSS를 정의

    .myLink { text-decoration: underline; cursor: pointer; }
    

    그 결과 그리드는 이전과 정확히 볼 것이다 :

    링크를 클릭에 대한 몇 가지 자바 스크립트 코드를 실행하기 위해 (심지어 링크가있는 셀을 클릭에) 하나 beforeSelectRow 또는 onCellSelect 콜백을 사용할 수 있습니다. 예를 들면

    beforeSelectRow: function (rowid, e) {
        var iCol = $.jgrid.getCellIndex($(e.target).closest("td")[0]);
        if (this.p.colModel[iCol].name === 'cfgName') {
            //alert("GO!!!");
            goToViewAllPage(rowid);
            return false;
        }
    }
    

    당신은 내가 데모에 무슨 뜻인지 알 수 있습니다.

  2. from https://stackoverflow.com/questions/13761222/how-to-fire-loadcomplete-after-new-row-is-added-in-jqgrid by cc-by-sa and MIT license