2016-04-27 7 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を停止します。

関連する問題