2016-04-12 12 views
0

Kendo UI ve açısal ızgara uygulamasıyla çalışıyorum. Başvurumda Kendo TabStrip'i tanımlarım. İlk sekmede Veri ile Kendo UI ızgarası var ve ikinci sekme kullanıcı bir ızgarada bir satır seçtiğinde doldurulacak uygun metin kutusu alanları içeriyor. Yük sayfam yüklendiğinde ve verilerim mükemmel olduğunda veri kaynağımla doldurulur, ancak metin kutusu alanlarına veri bağlanılamıyor. Kullanıcı bir ızgarada satır seçtiğinde metin kutusu alanlarındaki verilere nasıl bağlanır? AngularJs ile Kendo UI: Kullanıcı bir ızgarada satır seçtiğinde metin kutusu alanlarındaki verilere nasıl bağlanır

Bu

(ayrı dosyada) benim JSON veri:

[ 
    { "Id": 1, "AccountNo": "10236", "PostingDate": "20.01.2015", "MaturityDate": "24.01.2015", "Description": "description1", "DocumentType": "doc1" }, 
    { "Id": 2, "AccountNo": "10648", "PostingDate": "26.01.2015", "MaturityDate": "28.01.2015", "Description": "description2", "DocumentType": "doc2" }, 
    { "Id": 3, "AccountNo": "10700", "PostingDate": "22.01.2015", "MaturityDate": "25.01.2015", "Description": "description3", "DocumentType": "doc3" }, 
    { "Id": 4, "AccountNo": "10810", "PostingDate": "24.01.2015", "MaturityDate": "27.01.2015", "Description": "description4", "DocumentType": "doc4" }, 
    { "Id": 5, "AccountNo": "10101", "PostingDate": "29.01.2015", "MaturityDate": "30.01.2015", "Description": "description5", "DocumentType": "doc5" }, 
    { "Id": 6, "AccountNo": "10364", "PostingDate": "25.01.2015", "MaturityDate": "31.01.2015", "Description": "description6", "DocumentType": "doc6" } 


] 

Bu (ayrı dosyada) benim açısal hizmetidir: Bu benim denetleyicisidir

angular.module("app").factory('myService', function ($http) { 

    return { 
     getAll: function (onSuccess, onError) { 
      return $http.get('/Scripts/app/data/json/master/masterGridData.js').success(function (data, status, headers, config) { 
       onSuccess(data); 
      }).error(function (data, status, headers, config) { 
       onError(data); 
      }); 
     } 
    } 


}); 

(ki) ayrı bir dosyada geçerli: Bu benim HTML

var app = angular.module("app", ["kendo.directives"]).controller("myController", function ($scope, myService) { 

$scope.tabStrip = null; 
$scope.$watch('tabStrip', function() { 
    $scope.tabStrip.select(0); 
}); 

$scope.masterDataSource = new kendo.data.DataSource({ 
    transport: { 
     read: function (options) { 
      url = "/Scripts/app/data/json/master/masterGridData.js", 
      myService.getAll(function (data) { 
       options.success(data); 
      }).error(function (data) { 
       options.error(data); 
      }) 
     } 
    }, 
    schema: { 
     model: { 
      id: "Id", 
      fields: { 
       Id: { type: "number" }, 
       AccountNo: { type: "string" }, 
       PostingDate: { type: "string" }, 
       MaturityDate: { type: "string" }, 
       Description: { type: "string" }, 
       DocumentType: { type: "string" } 
      } 
     } 
    }, 
    pageSize: 16 
}); 

$scope.gridMaster = { 
    columns: [ 
      { field: "Id", hidden: true }, 
      { field: "AccountNo", title: "Account No", width: "77px", template: '<div style="text-align:left;">#= kendo.toString(AccountNo) #</div>' }, 
      { field: "PostingDate", title: "Posting Date", width: "70px" }, 
      { field: "MaturityDate", title: "Maturity Date" width: "70px" }, 
      { field: "Description", title: "Description", width: "170px" }, 
      { field: "DocumentType", hidden: true } 
    ], 
    dataSource: $scope.masterDataSource, 
    selectable: true, 
    filterable: true, 
    scrollable: true, 
    pageable: { 
     pageSize: 16, 
     //refresh: true, 
     pageSizes: ["50", "100", "200", "All"] 
    }, 
    toolbar: [{ 
     name: "create" 
    }] 
}; 


}); 

:

<html> 
<head> 
    <!-- css and javaScript files --> 
</head> 
<body ng-app="app" ng-controller="myController"> 
    <div class="divH3Style"> 
     <h3 class="h3LabelForm">Grid Master</h3> 
    </div> 
    <div id="tabstrip" class="k-tabstrip-wrapper" data-kendo-tab-strip="tabStrip"> 
          <ul> 
           <li>Overview</li> 
           <li>Update</li> 
          </ul> 


         <div id="tabstrip-1"> 
          <div id="gridMaster" kendo-grid k-options="gridMaster" k-data-source="masterDataSource"> 
          </div> 
         </div> 

         <div id="tabstrip-2" style="overflow: hidden"> 
          <div id="tabStrip2Half1"> 
           <div class="divHeightStyle"> 
            <label for="accountNumber" class="labelTextSize">Account Number:</label> 
            <input id="accountNumber" type="number" class="k-textboxField" name="accountNumber" ng-model="masterDataSource.data.AccountNo" placeholder="Account Number" /> 
           </div> 
           <div class="datepickerStyle"> 
            <label for="postingDate" class="labelTextSize">Posting Date:</label> 
            <input id="postingDate" class="k-datetimepickerMaster" name="postingDate" ng-model="masterDataSource.data.PostingDate" /> 
           </div> 
           <div class="divHeightStyle"> 
            <label for="desccription" class="labelTextSize">Description:</label> 
            <input id="desccription" type="text" class="k-textboxField" name="description" placeholder="Description" ng-model="masterDataSource.data.Description" /> 
           </div> 
           <div class="datepickerStyle"> 
            <label for="maturityDate" class="labelTextSize">Maturity Date:</label> 
            <input id="maturityDate" class="k-datetimepickerMaster" name="maturityDate" ng-model="masterDataSource.data.MaturityDate" /> 
           </div> 
          </div> 
          <div id="tabStrip2Half2"> 
           <div class="divHeightStyle"> 
            <label for="documentType" class="labelTextSize">Document Type:</label> 
            <input id="documentType" type="text" class="k-textboxField" name="documentType" placeholder="Document Type" ng-model="masterDataSource.data.DocumentType" /> 
           </div> 

           <div> 
            <button type="button" id="saveDataMasterGrid" class="k-button buttonSaveCancel" onclick="saveDataMasterGrid()">Save</button> 
            <button type="button" id="cancelDataMasterGrid" class="k-button buttonSaveCancel" onclick="cancelButtonMasterGrid()">Cancel</button> 
           </div> 
          </div> 
         </div> 
        </div> 
</body> 
</html> 

Herhangi bir yardım çok yararlı olacaktır.

cevap

1

Bu sorunu çözüyorum. Ben $ scope.gridMaster değişim etkinlik işlevini eklendi:

$scope.gridMaster = { 
    ... 
    change: function() { 
     var dataItem = this.dataItem(this.select()); 
     $scope.accountNumber = dataItem.AccountNo; 
     $scope.postingDate = dataItem.PostingDate; 
     $scope.description = dataItem.Description; 
     $scope.maturityDate = dataItem.MaturityDate; 
     $scope.documentType = dataItem.DocumentType; 
    } 
} 

Ve ben HTML sayfasındaki değişim ng-modeli olmuştur:

<div id="tabstrip-2" style="overflow: hidden"> 
         <div id="tabStrip2Half1"> 
          <div class="divHeightStyle"> 
           <label for="accountNumber" class="labelTextSize">Account Number:</label> 
           <input id="accountNumber" type="number" class="k-textboxField" name="accountNumber" ng-model="accountNumber" placeholder="Account Number" /> 
          </div> 
          <div class="datepickerStyle"> 
           <label for="postingDate" class="labelTextSize">Posting Date:</label> 
           <input id="postingDate" class="k-datetimepickerMaster" name="postingDate" ng-model="postingDate" /> 
          </div> 
          <div class="divHeightStyle"> 
           <label for="desccription" class="labelTextSize">Description:</label> 
           <input id="desccription" type="text" class="k-textboxField" name="description" placeholder="Description" ng-model="description" /> 
          </div> 
          <div class="datepickerStyle"> 
           <label for="maturityDate" class="labelTextSize">Maturity Date:</label> 
           <input id="maturityDate" class="k-datetimepickerMaster" name="maturityDate" ng-model="maturityDate" /> 
          </div> 
         </div> 
         <div id="tabStrip2Half2"> 
          <div class="divHeightStyle"> 
           <label for="documentType" class="labelTextSize">Document Type:</label> 
           <input id="documentType" type="text" class="k-textboxField" name="documentType" placeholder="Document Type" ng-model="documentType" /> 
          </div> 

          <div> 
           <button type="button" id="saveDataMasterGrid" class="k-button buttonSaveCancel" onclick="saveDataMasterGrid()">Save</button> 
           <button type="button" id="cancelDataMasterGrid" class="k-button buttonSaveCancel" onclick="cancelButtonMasterGrid()">Cancel</button> 
          </div> 
         </div> 
        </div> 
İlgili konular