簡體   English   中英

根據用戶組成員資格刪除表列

[英]Remove table column based on user group membership

因此從技術上講我有什么是工作,但它是非常緩慢的。

簡而言之,我要查詢數據庫中的數據,然后創建一個包含該數據的視圖模型和一個包含用戶AD數據的對象。

這是我的ViewModel:

public class SearchViewModel
{

     public List<Submission> submissionList { get; set; }
     public LoggedInUser User
     {
         get
         {
             return new LoggedInUser();
         }
     }
}

public class Submission
{
    //... All the things ...
}

LoggedInUser是我所擁有的幫助程序類,其中包含幾個不同的廣告屬性,但是為此,我正在查看一個名為isAdmin的布爾值。 如果is admin為True希望顯示特定列。

這就是我通過Razor / Html進行的方式。

<table class="datatable table table-bordered table-condensed">
    <thead>
        <tr>
            //. . . Column Headers . . .

            @if(Model.User.isAdmin)
            { 
                <th />
            }
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model.submissionList )
        {                 
            <tr id="@item.ID">
                //. . . Column Content . . .

                @if(Model.User.isAdmin)
                { 
                    <td>
                        <div id="approvalBtn-@item.ID">
                                <a href="#" onclick="quickApprove(@item.ID)">
                                    <i class="fa fa-check text-success fa-lg" data-toggle="tooltip" data-placement="top" title="Submit for approval!"></i>
                                </a>
                        </div>
                    </td>
                }
            </tr>
        }
    </tbody>
</table>

當我刪除isAdmin的檢查時,信息顯示速度更快。 從5分鍾縮短到大約10秒。

javascript是否可能有更好的實現?

您如何實例化SearchViewModel類? 如果直接執行此操作,則應創建一個名為isAdmin的特定屬性,並在實例化時設置其值,如下所示:

public class SearchViewModel
{
     public List<Submission> submissionList { get; set; }
     public bool isAdmin { get; set; }
}

接着..

var user = new LoggedInUser();
var viewModel = new SearchViewModel {
    submissionList = submissionList, //supose you already have this value
    isAdmin = user.isAdmin
};

您的剃須刀將被修改為:

<table class="datatable table table-bordered table-condensed">
    <thead>
        <tr>
            //. . . Column Headers . . .

            @if(Model.isAdmin)
            { 
                <th />
            }
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model.submissionList )
        {                 
            <tr id="@item.ID">
                //. . . Column Content . . .

                @if(Model.isAdmin)
                { 
                    <td>
                        <div id="approvalBtn-@item.ID">
                                <a href="#" onclick="quickApprove(@item.ID)">
                                    <i class="fa fa-check text-success fa-lg" data-toggle="tooltip" data-placement="top" title="Submit for approval!"></i>
                                </a>
                        </div>
                    </td>
                }
            </tr>
        }
    </tbody>
</table>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM