2017-01-11 6 views
2

У меня есть jqgrid, где в первом столбце есть некоторое число, которое является гиперссылкой. При щелчке я использую formatter:linkfmatter и отправляю rowid на задний конец с помощью ajax-вызова.Отключить гиперссылку в jqgrid на основе другого значения столбца

Теперь мое требование, если столбец B 0 я хочу столбец A быть гиперссылка, но когда колонна B этой конкретной строки 1 я хочу Column B гиперссылку быть отключен.

Может ли кто-нибудь сказать мне, возможно ли вообще использовать javascript-jquery и указать мне в правильном направлении? Вот мой код для jqgrid

$("#tblJQGridCCVT").jqGrid({ 
    url: "@Url.Action("MyAction", "MyController")" + "?Parameters=" + Params + "", 
    datatype: "json", 
    mtype: 'GET', 
    cache: false, 
    async: false, 
    colNames: ['A', 'B', 'C', 'D', 'E','F', so on...],//nearly 30 columns 
    colModel: [ 
     { name: 'A', index: 'A', width: 150, edittype: 'select', formatter: linkFmatter }, 
     { name: 'B', index: 'B', width: 150 }, 
     { name: 'C', index: 'C', width: 150 }, 
     { name: 'D', index: 'Updated By', width: 150 }, 
     { name: 'E', index: 'E', width: 150 }, 
     { name: 'F', index: 'F', width: 150 }, 
     So on 
      ... 
      ... 
      ... 
    ], 
    pager: $('#pager'), 
    height:300, 
    rowNum: 10, 
    sortorder: "desc", 
    sortname: 'ResponseId', 
    viewrecords: true, 
    sortable: true, 
    loadonce: true, 
    forceClientSorting: true, 
    ignoreCase: true, 
    caption: "Summary" 
}); 
$("#tblJQGridCCVT").jqGrid('navGrid', '#pager', { view: false, del: false, add: false, edit: false, search: true, refreshtext: "Refresh" }, { closeOnEscape: true, multipleSearch: true, closeAfterSearch: true }, {}, {}, {}); 
$("#tblJQGridCCVT").jqGrid('filterToolbar', { stringResult: true, searchOnEnter: false, defaultSearch: 'cn' }); 

function linkFmatter(cellvalue, options, rowObject) { 
    var selectedCellValue = cellvalue; 
    var selectedRowId = options.rowId; 
    return '<a href="javascript:MethodJS(' + selectedRowId + ')" style="color: #3366ff" id="' + selectedRowId + '" >' + selectedCellValue + '</a>'; 
} 


function MethodJS(selectedRowId) { 
    $.ajax({ 
     async: false, 
     type: "POST", 
     contentType: "application/json; charset=utf-8", 
     url: "@Url.Action("GetDetailedViewOfResponsesForEdit", "ViewResponseDetailsCCVT")", 
     data: "{RowId:'" + selectedRowId + "'}", 
     success: function (Result) { 
      if (Result == "Success") { 
       var url = window.location.href; 
       window.location.href = "@Url.Action("ResponseDetailsEditForCCVT", "ViewResponseDetailsCCVT")"; 
      } 
     } 
    }); 
} 

ответ

2

у вас есть данные строки в rowObject параметра. Вы можете использовать это, как показано ниже.

function linkFmatter(cellvalue, options, rowObject) { 
    if (rowObject.B == 0) { 
     var selectedCellValue = cellvalue; 
     var selectedRowId = options.rowId; 
     return '<a href="javascript:MethodJS(' + selectedRowId + ')" style="color: #3366ff" id="' + selectedRowId + '" >' + selectedCellValue + '</a>'; 
    } 

    return cellvalue 
} 

DEMO HERE

 Смежные вопросы

  • Нет связанных вопросов^_^