Мой угловой onclick не переносит меня на код сервера ajax - PullRequest
0 голосов
/ 06 февраля 2019

Я написал кнопку onClick для доставки данных с сервера, но она не возвращает меня к функции GetMPFilter, написанной на стороне сервера

$scope.GetFilter = function () {        
        var strZone = $('#SAPExecutive_R4GState').val();
        var strUtility = $('#ddlUtility').val();

        $scope.dtColumns = [
            DTColumnBuilder.newColumn(null, '').renderWith(function (data, type, full) {
                return '<input type="checkbox" class="check" data-object-id="' + full.objectid + '">'
            }),
            DTColumnBuilder.newColumn("MAINTENANCEZONENAME", "MAINTENANCEZONENAME"),
            DTColumnBuilder.newColumn("MAINTENANCEZONECODE", "MAINTENANCEZONECODE")
        ]
        $scope.dtOptions = DTOptionsBuilder.newOptions().withOption('ajax', {
            method: "POST",
            url: AppConfig.PrefixURL + "/App/GetMPFilter",
            dataType: 'json',            
            data: JSON.stringify({ strZone: strZone, strUtility: strUtility }),
            headers: { "Content-Type": "application/json" }
        })
        .withPaginationType('full_numbers')
        .withDisplayLength(10);
    }
});


Server code

[HttpPost]
        public JsonResult GetMPFilter(string strZone, string strUtility)
        {
            DataTable dt = new DataTable();
            Filters ObjFilter = new Filters();

            dt = ObjFilter.GetMPFromState(strZone, strUtility);

            var MpList = (from DataRow dr in dt.Rows
                          select new
                          {
                              //Action = "",
                              MZONENAME = Convert.ToString(dr["MAINTENANCEZONENAME"]),
                              MZONECODE = Convert.ToString(dr["MAINTENANCEZONECODE"]),                              
                          }).ToList();

            return Json(MpList, JsonRequestBehavior.AllowGet);

        }
<button class="btn btn-default customBtn" ng-click="GetFilter();"><i class="fa fa-filter" aria-hidden="true"></i> Filter</button>

Пожалуйста, подскажите, где я не прав

1 Ответ

0 голосов
/ 06 февраля 2019

Пожалуйста, используйте эти изменения, которые я опубликовал.Я надеюсь, что это решит вашу проблему.Спасибо.

  $scope.GetFilter = function () {        
            var strZone = $('#SAPExecutive_R4GState').val();
            var strUtility = $('#ddlUtility').val();

            $scope.dtColumns = [
                DTColumnBuilder.newColumn(null, '').renderWith(function (data, type, full) {
                    return '<input type="checkbox" class="check" data-object-id="' + full.objectid + '">'
                }),
                DTColumnBuilder.newColumn("MAINTENANCEZONENAME", "MAINTENANCEZONENAME"),
                DTColumnBuilder.newColumn("MAINTENANCEZONECODE", "MAINTENANCEZONECODE")
            ]
            $scope.dtOptions = DTOptionsBuilder.newOptions().withOption('ajax', {
                method: "POST",
                url: AppConfig.PrefixURL + "/App/GetMPFilter",
                dataType: 'json',            
                data: "{strZone:'" + strZone + "',strUtility:'" + strUtility + "'}", 
                headers: { "Content-Type": "application/json; charset=utf-8" }
            })
            .withPaginationType('full_numbers')
            .withDisplayLength(10);
        }
    });

Вот простой пример нажатия кнопки:

<body ng-controller="MainCtrl">
    <p>Hello {{name}}!</p>
    {{msg}}
    <a ng-href='#here' ng-click='go()' >click me</a>
    <div style='height:1000px'>

      <a id='here'></a>

    </div>
     <h1>here</h1>
  </body>

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {
  $scope.name = 'World';

  $scope.go = function() {

    $scope.msg = 'clicked';
  }
});
...