2016-09-01 47 views
2

私はlightswitchプロジェクトに取り組んでおり、JsGridを使用しています.1つの問題が発生しましたが、解決策が見つかりませんでした。
ここにシナリオがあります: セルの1つを更新すると、グリッドを使用してデータベーステーブルからデータを取得します。セルを再度クリックしない限り表示されません。また、2回目に更新すると、新しい値が表示されます。 itemupdatedの後にグリッドをリフレッシュしようとしましたが、新しい値が瞬時に表示されません。
私のコードはここにある:jsGridのセルが更新されていませんでした

$("#jsGrid").jsGrid({ 
     width: "100%", 
     height: "auto", 
      inserting: true, 
     editing: true, 
     sorting: true, 
     paging: true, 
     autoload: true, 
     controller: { 
      loadData: function() { 
       var deferred = jQuery.Deferred(); 
       myapp.activeDataWorkspace.ApplicationData.Table1Items.load().done(function (data) { 
        deferred.resolve(data.results); 
       }); 
       return deferred.promise(); 
      }, 
      updateData: function() { 
       $("#jsGrid").jsGrid("refresh"); 
      }, 
      deleteItem: function (Item) { 
       $("#jsGrid").jsGrid("refresh"); 
      } 
     }, 
     fields: [ 
      { name: "EmployeeName", type: "text", width: 150 }, 

      { name: "Points", type: "text", width: 200 }, 

      { type: "control", editButton: true,        // show edit button 
       deleteButton: true,        // show delete button 
       clearFilterButton: true,      // show clear filter button 
       modeSwitchButton: true      // show switching filtering/inserting button 


      }] 
     , 
     onItemInserted: function (item) { 

     }, onItemUpdating: function (item) { 


      $("#jsGrid").jsGrid("refresh"); 
     }, 
     onItemUpdated: function (item)  

      { 
      $("#jsGrid").jsGrid("refresh"); 
      console.log("it is updated", item.item); 
      $("#jsGrid").jsGrid("refresh"); 

     } 
    }); 

あなたの助けを事前に貴重な、多くのおかげです。

+1

オーバーフローを歓迎します。[コードをフォーマットする方法]を参照してください(http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks ) – yash

+0

更新後に空の行が表示されるか、特定のセルだけが表示されませんか?あなたはこの問題を再現しようとしますか?https://jsfiddle.net/tabalinas/cy8b8Lro/この問題を再現するか、問題を見るために公開リンクを提供してください。 – tabalin

+0

あなたの回答をありがとう、私はそれを使用しましたが、私は同じ問題があった "私はセルの値を更新するために2回更新をクリックしなければならない" –

答えて

0

これがあなたを助けてくれることを願っています。
updateItemは、更新された項目またはjQuery約束を返す関数であり、更新された項目で解決されます。アイテムオブジェクトの更新を受け入れます。成功した更新項目に
、あなたが任意のクエリを持っている場合、下記のコメント

updateItem: function(item) { 
    return $.ajax({ 
     type: "PUT", 
     url: "/items", 
     data: item 
    }); 
}, 

enter image description here を使用しています。 詳細を参照してください。link

関連する問題