2016-10-23 21 views
0

最初の列の行を持つ角グリッドをアンカーリンクまたはそのセル値のjavascript条件に基づくラベルとして表示する必要がありますが、文字 'M'で始まるものはありません。カラム1のセルの値が文字 'M'で始まる場合、カラムはラベルになります。それ以外の場合はヒープリンクになります。私は2つの異なるセルテンプレートを使用しなければならないと信じていますが、uigridの行databindイベントでそれらを呼び出す方法がわかりません。以下はコードです。アンカーとラベルのセル値に基づくセルテンプレート

テンプレート:以下

var linkCellTemplate = '<div class="ngCellText" ng-class="col.colIndex()">' + 
       ' <a class="text-blue-color text-underline" href="' + getURL() + '/ClaimDetail/Index?TagNumber={{row.entity.TagNumber}}&from=linkcomfort&Style=' + Style + '" target="_blank";">{{row.entity.TagNumber}}</a>' + 
       '</div>'; 
var labelCellTemplate = '<div class="ngCellText" ng-class="col.colIndex()">' + 
       ' <label>{{row.entity.TagNumber}}</label>' + 
       '</div>'; 

グリッドの下

 $scope.ComfortPlanGrid = { 
     enableGridMenu: true, 
     exporterMenuCsv: true, 
     exporterMenuPdf: false, 
     gridMenuShowHideColumns: true, 
     enableRowSelection: false, 
     enableColumnMenus: false, 
     enableFiltering: false, 
     enablePaging: false   

    }; 
    $scope.ComfortPlanGrid.columnDefs = config.headers.comfortPlansHeadersGrid; 

あり、これは高く評価されを達成する方法上の任意のヘルプグリッドヘッダ

var headers = { 
    comfortPlansHeadersGrid: [ 
     { field: 'TagNumber', width: 130, displayName: 'Claim Tag Nbr', cellTemplate: linkCellTemplate }, 
     { field: 'CustomerNumber', width: 200, displayName: 'Customer/Dealer' }, 
     { field: 'Status', width: 80, cellTooltip: true }, 
     { field: 'StatusDate', width: 175, displayName: 'Status Date' }, 
     { field: 'Description', displayName: 'Description', width: 270, cellTemplate: claimDetailTemplate }, 
     { field: 'ContractNumber', width: 200, displayName: 'Contract Number', headerTooltip: 'Contract Number' }, 
     { field: 'ServiceDate', width: 175, displayName: 'Service Date', headerTooltip: 'Service Date' } 
    ]}; 

です。

+0

アムにcoldefにcelltemplateを追加しますが、私はいくつかの他のJavaScript関数を呼び出すしたいと思います

をまた、celltemplate内の検証のために。どのようにng-ifでjavascript関数を呼び出すかについては、どんな考えもありがたいです。 – sam

+0

セルテンプレートコードが更新されました:var linkCellTemplate = '

' + '' + '
' + '
'; – sam

答えて

0

以下のコード試してみてください:セルの下のテンプレートを使用して検証をacheiveすることができ、関連するコラム

cellTemplate: DisplayConditionalTemplate(value) 


function DisplayConditionalTemplate(value){ 
var linkCellTemplate = '<div class="ngCellText" ng-class="col.colIndex()">' +' <a class="text-blue-color text-underline" href="' + getURL() + '/ClaimDetail/Index?TagNumber={{row.entity.TagNumber}}&from=linkcomfort&Style=' + Style + '" target="_blank";">{{row.entity.TagNumber}}</a>' +     '</div>'; 
var labelCellTemplate = '<div class="ngCellText" ng-class="col.colIndex()">'+' <label>{{row.entity.TagNumber}}</label>' +     '</div>'; 

if(value.charAt(0) === 'M') 
    return labelCellTemplate; 
else 
    return linkCellTemplate; 
} 
関連する問題