2016-04-27 33 views
1

我有一個Grid.MVC表格,它正在使用行選擇功能編輯每一行。爲了加快速度,我試圖在第一列添加一個電源按鈕,這將有效地在數據庫級別切換活動或非活動行。Grid.MVC禁用嵌入式按鈕的onrowselect

但是,當點擊按鈕時,它會觸發按鈕的代碼和onRowSelect代碼。是否有可能爲某些列關閉onRowSelect,或者如果沒有獲取被點擊的對象,所以如果我知道按鈕被按下了,我不能觸發選擇代碼?

電網代碼如下。

@Html.Grid(Model.AllContracts).Named("contractsGrid").Columns(columns => 
      { 
       columns.Add(item => item.ContractTypeID) 
        .Titled("ID") 
        .Css("grid-id hidden") 
        .SetWidth("50px") 
        .Sortable(true); 
       columns.Add(item => item.active) 
        .Titled("") 
        .Encoded(false) 
        .Sanitized(false) 
        .SetWidth(30) 
        .RenderValueAs(o => @<button onclick="DeactivateContract()"><i class='oi iconPowerOn' data-glyph='power-standby' title='Deactivate Contract'></i></button>); 

       columns.Add(item => item.ContractDescription) 
        .Titled("Contract Name") 
        .Sortable(true).Filterable(true); 
      }).WithPaging(7) 

和腳本

<script> 
$(function() { 
    pageGrids.contractsGrid.onRowSelect(function (e) { 
     debugger; 
     var clientID = e.row.ContractTypeID; 
     var url = '@Url.Action("UpdateContract", "Contracts", new { id = -1 }) '; 
     url = url.replace("-1", e.row.ContractTypeID); 
     window.location.href = url; 

    }); 
}); 

function DeactivateContract() { 
    alert("DEACTIVE") 
}; 

感謝

回答

0

添加類禁用於您的按鈕

.RenderValueAs(o => @<button class="deactivate" onclick="DeactivateContract()"><i class='oi iconPowerOn' data-glyph='power-standby' title='Deactivate Contract'></i></button>); 

然後在事件

$(function() { 
pageGrids.contractsGrid.onRowSelect(function (e) { 
    debugger; 
    if(e.row.attr("class") != "deactivate") 
    return false; 

    var clientID = e.row.ContractTypeID; 
    var url = '@Url.Action("UpdateContract", "Contracts", new { id = -1 }) '; 
    url = url.replace("-1", e.row.ContractTypeID); 
    window.location.href = url; 

    }); 
}); 
0
function DeactivateContract(e) { 
    event.stopImmediatePropagation() 
    //DO STUFF 
}; 

的event.stopImmediatePropagation通話將隨後發射停止rowselect。