隐藏/显示webGrid CSHTML代码中的可编辑链接

时间:2016-08-02 20:34:32

标签: asp.net-mvc

我正在尝试隐藏/显示给定网格的每一行中的“编辑”链接。基本上只有少数用户角色可以访问修改信息。我在控制器类中编写了一个方法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>

1 个答案:

答案 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>