我有一个Grid.MVC表,可以正常使用行选择功能来编辑每一行。为了加快速度,我尝试在第一列添加电源按钮,这将有效地在数据库级别切换活动或非活动行。
然而,当点击按钮时,它会触发按钮的代码和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 :(得分: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;
});
});
答案 1 :(得分:0)
function DeactivateContract(e) {
event.stopImmediatePropagation()
//DO STUFF
};
event.stopImmediatePropagation调用将阻止rowselect随后触发。