2016-07-01 15 views
0

技術的には私が働いていますが、それはEXTREMELYです。ユーザーグループメンバーシップに基づいてテーブルの列を削除します

一言で言えば、私はデータのためにデータベースを照会して、そのデータを含むビューモデルを作成して、ユーザーのADデータを含むオブジェクトとペアにします。

public class SearchViewModel 
{ 

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

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

LoggedInUserは、いくつかの異なる広告の属性を含む、私が持っているヘルパークラスですが、この問題のために、私はisAdminと呼ばれるbool値で探しています:

は、ここに私のViewModelです。もしadminがTrueなら私は特定の列を表示したいと思っています。

これは私がRazor/Htmlでやっている方法です。

isAdminの小切手を削除すると、情報がより速く表示されます。 5分から約10秒に下がります。

javascriptを使用した方がよいでしょうか?

+1

model-view-controllerタグは、パターンについての質問です。 ASP.NET-MVCの実装には特定のタグがあります。 –

答えて

0

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="[email protected]"> 
           <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> 
+0

これは実際に私がこれを実装する方法です。私はちょうど私の質問を更新する機会がなかった。 – Johnrad

関連する問題