2017-05-01 2 views
0

I jsGrid (Grid jQuery Plugin) verwenden, unter Daten in tabellarischer Form angezeigt ist der Code, den ichWie jsGrid von SQL Server binden

<script> 
    $(function() { 

     $("#jsGrid").jsGrid({ 
      height: "70%", 
      width: "100%", 
      filtering: true, 
      editing: true, 
      inserting: true, 
      sorting: true, 
      paging: true, 
      autoload: true, 
      pageSize: 15, 
      pageButtonCount: 5, 
      deleteConfirm: "Do you really want to delete the client?", 
      controller: db, 
      fields: [ 
       { name: "Name", type: "text", width: 150 }, 
       { name: "Age", type: "number", width: 50 }, 
       { name: "Address", type: "text", width: 200 }, 
       { name: "Country", type: "select", items: db.countries, valueField: "Id", textField: "Name" }, 
       { name: "Married", type: "checkbox", title: "Is Married", sorting: false }, 
       { type: "control" } 
      ] 
     }); 

    }); 
</script> 

Es habe Daten Nehmen Sie entweder von einem Dienst oder aus einer Datei, die db.js wie folgt

db.countries = [ 
    { Name: "", Id: 0 }, 
    { Name: "United States", Id: 1 }, 
    { Name: "Canada", Id: 2 }, 
    { Name: "United Kingdom", Id: 3 }, 
    { Name: "France", Id: 4 }, 
    { Name: "Brazil", Id: 5 }, 
    { Name: "China", Id: 6 }, 
    { Name: "Russia", Id: 7 } 
]; 

db.clients = [ 
    { 
     "Name": "Otto Clay", 
     "Age": 61, 
     "Country": 6, 
     "Address": "Ap #897-1459 Quam Avenue", 
     "Married": false 
    }, 
    { 
     "Name": "Connor Johnston", 
     "Age": 73, 
     "Country": 7, 
     "Address": "Ap #370-4647 Dis Av.", 
     "Married": false 
    }, 
    { 
     "Name": "Lacey Hess", 
     "Age": 29, 
     "Country": 7, 
     "Address": "Ap #365-8835 Integer St.", 
     "Married": false 
    }]; 

ich möchte passieren Daten in ihn aus einer Datenquelle wie MS SQL Server ist: wie können wir es tun?

Antwort

1

Funktioniert Ihr Gitter mit den obigen statischen Daten von db.js? Wenn dies der Fall ist, handelt es sich nicht um jsGrid, sondern um SQL- und Webdienste. Im Grunde müssen Sie einen Webdienst erstellen, der Ihre SQL-Datenbank abfragt und ein Array von Daten für Ihr jsGrid zurückgibt.

Der Aufruf an den Web-Service kann in der loadData Controller sein. Die documentation zeigt ein einfaches Beispiel. Unten ist ein ähnliches Beispiel verspricht mit dem /api/data der Ajax-Aufruf an den Webdienst ist, dass die Daten in der Form Ihrer statischen Datei kehrt zurück hat: denn jetzt

... 
controller: { 
    loadData: function(filter) { 
       return $.getJSON("/api/data/" 
       ).done(function(results) { 
        console.log(results); 
       }).fail(function(err) { 
        alert(err)); 
        }); 
    }, 
}, 
... 

Möglicherweise möchten Sie starten einfach und vermeiden Paging um zu testen, ob Daten abgerufen werden. Das Paging erfordert eine komplexere Abfrage, bei der auch die Gesamtzahl der Datensätze im Ergebnis zurückgegeben werden muss. Vom documentation:

dataResult hängt von pageLoading. Wenn pageLoading falsch ist (standardmäßig), dann ist das Datenresultat ein einfaches JavaScript-Array von Objekten.

{ 
    data   // array of items 
    itemsCount // total items amount in storage 
} 
+0

return $ .getJSON ("/ api/data /" ist es der Weg zum Web-Service wie "http: //abc/xyz.asmx" Wenn pageLoading wahren Daten Ergebnis ist folgende Struktur haben sollte ?? – Saurabh

+0

Das ist korrekt.Um Ajax zu verwenden, muss der Web-Service auf demselben Host wie Ihre Webseite sein.Wenn Sie ASMX verwenden, müssen Sie möglicherweise die Daten in die Javascript-Objekte konvertieren, die für jsGrid benötigt werden, zB '[{Name : "...", Alter: yy, ...}, {Name: "...", Alter: zz, ...}, ...] '. Es ist einfacher, wenn Ihr Web-Service Inhalte ausgeben kann -type: application/json'. –