복붙노트

[JQUERY] GET을 사용하여 새 페이지에있는 jqGrid의 열 값에서 연결

JQUERY

GET을 사용하여 새 페이지에있는 jqGrid의 열 값에서 연결

해결법


  1. 1.나는 당신의 질문에 대답해야 결정, 그래서 당신은 나의 오래된 대답에서 코드 예제를 사용했다.

    나는 당신의 질문에 대답해야 결정, 그래서 당신은 나의 오래된 대답에서 코드 예제를 사용했다.

    나는 loadComplete의 코드의 성능에 대한 비평가에 동의합니다. 귀하의 질문에 대한 내에서 +1 그래서. 구성체 $ ( "#"IDS + [I] + "는"에는 myGrid [0]) 긴 루프의 내부는 매우 느리게 작동 할 수있다. 하나는 다음을 사용할 경우 하나는 쉽게 문제를 해결할 수 있습니다

    var getColumnIndexByName = function (columnName) {
        var cm = $(this).jqGrid("getGridParam", "colModel"), l = cm.length, i;
        for (i = 0; i < l; i++) {
            if (cm[i].name === columnName) {
                return i; // return the index
            }
        }
        return -1;
    };
    
    var myGrid = $("#list");
    myGrid.jqGrid({
        ...
        loadComplete: function () {
            var i = getColumnIndexByName.call(this, 'Subcategory');
            // nth-child need 1-based index so we use (i+1) below
            $("tbody>tr.jqgrow>td:nth-child(" + (i+1) + ")>a", this).click(function (e) {
                var hash=e.currentTarget.hash;// string like "#?id=0"
                if (hash.substring(0,5) === '#?id=') {
                    var id = hash.substring(5, hash.length);
                    var text = this.textContent || this.innerText;
                    alert("clicked the row with id='"+id+"'. Link contain '"+text+"'");
                    location.href = "http://en.wikipedia.org/wiki/" + text;
                }
                e.preventDefault();
            });
        }
    });
    

    당신은 데모의 개선 된 버전이 원래 데모 정확히 작동하는지 확인할 수 있습니다. 나는 또 하나의 데모를 만들어 1000 행에 방법의 성능을 표시합니다. 하나는 새로운 방법을 신속하게 작동하는지 확인할 수 있습니다.

    이제 큰 문제로 백업 할 수 있습니다. 당신은 사용자 정의 포맷터 및 언 포맷터 대신 showlink 포맷터 미리 정의의 사용을 작성하는 경우 가장 좋은 성능을 우리가 받게됩니다. 코드는 다음에 대해 할 수 있습니다 :

    formatter: function (cellvalue, options, rowObject) {
        return "<a href=\"job.php?job_id=" + rowObject.job_id + "\">" + cellvalue + "</a>";
    },
    unformat: function (cellvalue, options, cellobject) {
       return cellobject.job_id;
    }
    

    사실 여부와 jsonReader 사용 : 정확한 코드는 loadonce 사용 여부, 당신이 사용하는 데이터 유형에 따라 달라집니다. 그것은 rowObject가 귀하의 경우 배열 즉, 예를 들어이 될 수 있으며 사용해야합니다 대신 rowObject.job_id (rowObject [4]와 같은) 대응하는 데이터 필드의 배열 인덱스.

    업데이트 : 나는 최선의 구현 방법은 컬럼의 모든 요소에 onCellSelect 또는 beforeSelectRow의 사용 대신 바인딩 클릭 이벤트가 될 것이라 생각합니다. 이 하나, 또 다른 하나는 더 오래된 답 : 나는 자세한 내용은 다음 답변을 읽을 것을 권장합니다.

  2. from https://stackoverflow.com/questions/5010761/linking-from-a-column-value-in-jqgrid-to-a-new-page-using-get by cc-by-sa and MIT license