2014-10-20 55 views
3

当我使用单元模板为ahref链接时,一旦链接被点击,该行突出显示,因为我已启用RowSelection ...但我不希望单击该链接时突出​​显示该行。只有当该行被单击时,链接。单击ng-grid/ui-grid celltemplate会导致选择行。

同样在我的下面的示例图片中,如何删除小箭头,以便该列中不能显示Menuitems?

代码:

$scope.gridOptions = { 
    showFooter: true, 
    enableFiltering: true, 
    enableRowSelection: true, 
    enableRowHeaderSelection: false, 
    enableSelectAll: true, 
    multiSelect: true, 
    enableColumnResizing: true, 
    columnDefs: [ 
    { field:'date', displayName: 'Date', width: 200, aggregationType: uiGridConstants.aggregationTypes.count }, 
    { field:'notes', displayName: 'Notes', width: 65, enableFiltering: false, enableSorting: false, enableHiding: false, cellTemplate:'<a href="#" ng-click="getExternalScopes().showMe(row.entity[col.field])">View</a>' } 
    ], 
    data: data 
} 

图片:(!这是不NG-格了) enter image description here

+0

你能给出[plunker(HTTP:// plnkr .co /)(或[fiddle](http://jsfiddle.net/),[jsbin](http://jsbin.com/),[codepen](http://codepen.io/pen/))。 ..等等)?这对解决您的问题很有帮助。 – allyusd 2014-10-21 06:17:14

+0

请澄清:ng-grid还是ui-grid?这种差异并不像第一次看起来那么小。 – mainguy 2014-10-21 09:26:05

回答

6

这里是一个可能的答案UI格。

的一个按钮,不会选择该行的单元格模板是:

cellTemplate: '<button class="btn primary" ng-click="$event.stopPropagation();getExternalScopes().showMe(row)">Click Me</button>' 

注意$event.stopPropagation()在NG-点击指令。这将阻止点击到达rowTemplate的底层功能。 (还注意到我没有找到另一种方式将点击事件传递给控制器​​,而不是使用externalScopes。我相信有更好的方法,但ui-grid仍然是测试版,我对它也很新颖)

你问题的第二部分:使用此headCellTemplate

var headCelltpl = '<div ng-class="{ \'sortable\': sortable }">' + 
    '<div class="ui-grid-vertical-bar">&nbsp;</div>' + 
    '<div class="ui-grid-cell-contents" col-index="renderIndex">' + 
    '{{ col.displayName CUSTOM_FILTERS }}' + 
    '</div>' + 
    '</div>'; 

,并在你的columnDefs添加到相应的列。

headerCellTemplate: headCelltpl 

这是一个Plunker与一切包括在内。

请不要告诉我你的意思NG网:-)

+1

感谢您的行突出显示修复..第二个问题(向下箭头)可以通过在ColumnDef中使用此禁用:enableColumnMenu:false - 也许你想更新你的答案,但它取决于你:)再次感谢 – rubberchicken 2014-10-21 13:49:00

+0

Nah,你的有关菜单的答案更好。新手册中有很多需要阅读的内容: - /感谢这个有用的输入! – mainguy 2014-10-21 14:05:04

+0

该猛击者没有在当前的网格中工作 – bhantol 2016-03-31 19:41:48

0

简单solution是改变row.setSelectedfalse

cellTemplate: '<button class="btn primary" ng-click="grid.appScope.deSelectRow(row)">Click Me</button>' 

$scope.deSelectRow = function(row) { 
    row.setSelected(false); 
    }; 
相关问题