2017-03-06 8 views
1

私はshow users listのための1つの小さなデモを作成しています。そのshow listはangularjsを持つdatatabelを使いました。私のリストは非常によく最初のtime.butを表示する非常によくtabel.iでカスタムフィルタを作成する私はパスの週のデータを取得したいと私はまた、コントローラとデータを返すクエリを持ってpropare取得しかし、私はどのように次回バインドdatatable anglejsで。angeljs mvc c#を使用してデータラベルを更新する方法?

ここで初めてのDataTableのコードバインド:これは私のコントローラメソッドである

app.controller('userscontroller', ['$scope', '$http', 'DTOptionsBuilder', 'DTColumnBuilder', 
function ($scope, $http, DTOptionsBuilder, DTColumnBuilder) { 
    $scope.dtColumns = [ 
     //DTColumnBuilder.newColumn("id", "User ID"), 
     DTColumnBuilder.newColumn("firstname", "First Name"), 
     DTColumnBuilder.newColumn("lastname", "Last Name"), 
     DTColumnBuilder.newColumn("email", "Email"),  
    ] 

    debugger; 
    $scope.dtOptions = DTOptionsBuilder.newOptions().withOption('ajax', { 
     url: "/api/User/GetUserList", 
     type: "GET", 
     data: { 'searchRequest': null, fromDate: null, toDate: null }, 
     contentType: "application/json; charset=utf-8", 
    }) 
    .withPaginationType('full_numbers') 
    .withDisplayLength(50); 
}]) 

を:

[HttpGet] 
[Route("GetUserList")] 
public IHttpActionResult GetUserList(string searchRequest) 
{ 
    var UserList = db.UserInfo.ToList(); 

    if (searchRequest != null) 
    {     
     if (searchRequest == "Past Week") 
      UserList = UserList.Where(t => Convert.ToDateTime(t.registrationdate).ToString("MMM dd yyyy") == DateTime.Now.AddDays(-7).ToString("MMM dd yyyy")).ToList();        
    } 

    var Details = UserList.Select(h => new 
    { 
     h.id, 
     h.firstname, 
     h.lastname, 
     h.registrationdate, 
     h.email, 
     h.contactnumber 
    }); 
    return Json(Details); 
} 

これは、選択昨年のデータのための私のコードです:

$scope.GetValue = function (event) { 
    var Type = $scope.ddlSearch;   
     $.ajax({ 
      type: "GET", 
      cache: false, 
      url: '/api/User/GetUserList', 
      data: { searchRequest: Type }, 
      success: function (response) { 

      } 
     }); 

これがあります私のテーブルhtml:

<table id="entry-grid" datatable="" dt-options="dtOptions" dt-columns="dtColumns" class="table table-hover"> </table> 

私はこのコードを試しましたが、anuglarjs.anyでdatatableをリロードする方法がわかりません。このタスクについて私に助けてください。

答えて

1

私は$scope.dtOptionsを再割り当てすることをお勧め:

$scope.GetValue = function (event) { 
    var Type = $scope.ddlSearch; 
    $scope.dtOptions = DTOptionsBuilder.newOptions().withOption('ajax', { 
     url: "/api/User/GetUserList", 
     type: "GET", 
     cache: false, 
     data: { 'searchRequest': Type }, 
     contentType: "application/json; charset=utf-8", 
    }) 
    .withPaginationType('full_numbers') 
    .withDisplayLength(50); 
}; 

更新:

[HttpGet] 
[Route("GetList")] 
public ActionResult GetList(string psSelect) 
{ 
    List<dynamic> loList = new List<dynamic>(); 
    if (string.IsNullOrEmpty(psSelect)) 
    { 
     loList.Add(new { id = "1", firstname = "Tyler", lastname = "Durden"   }); 
    } 
    else 
    { 
     loList.Add(new { id = "2", firstname = "Big", lastname = "Lebowski" }); 
    } 

    return new MyJsonResult(loList); 
} 

ビュー:

私は(MVCコントローラで)

コントローラを簡単な例を作りました

<div data-ng-controller="mainController"> 
    <input type="button" value="Refresh" data-ng-click="refreshList()" /> 
    <table id="entry-grid" datatable="" dt-options="dtOptions" dt-columns="dtColumns" class="table table-hover"> </table> 
</div> 

Javascriptを:

$scope.dtOptions = DTOptionsBuilder.newOptions().withOption('ajax', { 
    url: "/Home/GetList", 
    type: "GET", 
    cache: false, 
    data: { 'psSelect': '' }, 
    contentType: "application/json; charset=utf-8", 
}) 
.withPaginationType('full_numbers') 
.withDisplayLength(50); 

$scope.refreshList = function() { 
    $scope.dtOptions = DTOptionsBuilder.newOptions().withOption('ajax', { 
     url: "/Home/GetList", 
     type: "GET", 
     cache: false, 
     data: { 'psSelect': 'refresh' }, 
     contentType: "application/json; charset=utf-8", 
    }) 
.withPaginationType('full_numbers') 
.withDisplayLength(50); 
}; 
+0

私はこのよう試みるのですが、その時のコールはので、私のコントローラでこの波についてのアイデアを得ていませんか? – coderwill

+0

こんにちは、私はこの問題について考えてください。 – coderwill

+0

追加 'to searchRequest私は私の答えを編集しました – PinBack

関連する問題