我正在尝试隐藏/显示给定网格的每一行中的“编辑”链接。基本上只有少数用户角色可以访问修改信息。我在控制器类中编写了一个方法ActionResult来检查用户访问并返回布尔值。基于True / False我需要在网格中隐藏/显示“编辑”链接。设计代码用MVC CSHTML编写。请建议如何实现。我尝试使用JQuery,但我可以仅为网格的第一行隐藏“编辑”列。下面是CSHTML和Jquery中的代码。
CSHTML代码
<table border="1" cellpadding="0" cellspacing="1" style="width: 90%;"><tr>
<td>
@grid.GetHtml(tableStyle: "webGridMedium",
headerStyle: "header",
alternatingRowStyle: "alt",
selectedRowStyle: "select",
columns: grid.Columns(
grid.Column("BeginDate", "Begin Date", style: "description"),
grid.Column("Status", "Status", style: "description"),
grid.Column("", style: "description10", format: @<a class="edit-status" id="btnEditStatus" href="">Edit</a>)
))
</td>
</tr>
</table>
JQuery代码:参数数据是布尔值,我从Controller类得到它。
<script>
$(document).ready(function () {
checkAccess();
}
function checkAccess() {
// debugger;
$.ajax({
url: '/Employee/CheckAccess',
type: 'POST',
data: {},
success: function (data) {
if (data == false) {
document.getElementById("btnEditStatus").style.visibility = "hidden";
}
else if (data = true) {
document.getElementById("btnEditStatus").style.visibility = "";
}
},
error: (function (result) {
alert("Failed access! Please contact administrator.");
})
})
}
</script>
答案 0 :(得分:0)
<script>
function checkAccess() {
// debugger;
$.ajax({
url: '/Application/CheckAccess',
type: 'POST',
data: {},
success: function (data) {
if (data == false) {
$('.modaltable tr').each(function (i, row) {
$(this).find('.edit-status').hide();
});
}
else if (data = true) {
// your code
}
},
error: (function (result) {
alert("Please contact IT administrator for access.");
})
})
}
</script>