2017-09-08 82 views
1

我正在爲我的Java應用程序使用Shield UI。 我創建了一個自定義插入窗口「命令」,如下所示:Shield UI:根據其他行插入行

爲insertRecord
toolbar: [ 
      { 
       buttons: [ 
        //{ commandName: "insert", caption: "Agregar Solicitud" } 
        { cls: "insertButton", caption: "Agregar Solicitud", click: insertRecord } 
       ], 
       position: "top" 
      }, 

代碼:

 function insertRecord(index) { 
     //alert(JSON.stringify(index)); 
     index = 0; 
     var grid = $("#grid").swidget(), 
      item = grid.dataItem(index); 

     initializeWindowWidgets(); 
     editedRowIndex = index; 

     $("#solId").swidget().value(item.solId); 
     $("#atmid").swidget().value(item.atmid); 
     $("#fechaAbastecimiento").swidget().value(item.fechaAbastecimiento); 
     $("#cargar").swidget().checked(item.cargar); 
     $("#emergencia").swidget().checked(item.emergencia); 
     $("#solId").swidget().enabled(true); 
     $("#atmid").swidget().enabled(true); 
     $("#fechaAbastecimiento").swidget().enabled(true); 
     $("#cargar").swidget().enabled(true); 
     $("#emergencia").swidget().enabled(true); 
     $("#save").swidget().enabled(true); 
     $("#window").swidget().visible(true); 
     //$("#window").swidget().center(); 
    } 

function initializeWindowWidgets() { 
     $("#window").shieldWindow({ 
       position: { left: 500, top: 200 }, 
       width: 320, 
       height: 360, 
       title: "Insertar abastecimiento", 
       modal: true, 
       visible: false 
      }); 
     $("#solId").shieldNumericTextBox({ 
     }); 
     $("#atmid").shieldTextBox({ 
     }); 
     $("#fechaAbastecimiento").shieldDatePicker({ 
     }); 
     $("#cargar").shieldCheckBox({ 
     }); 
     $("#emergencia").shieldCheckBox({ 
     }); 
     $("#save").shieldButton({ 
      events: { 
       click: function (e) { 
        var grid = $("#grid").swidget(), 
         editedItem = grid.dataSource.edit(3).data; 
        editedItem.solId = $("#solId").swidget().value(); 
        editedItem.atmid = $("#atmid").swidget().value(); 
        grid.saveChanges(); 
        $("#window").swidget().close(); 
       } 
      } 
     }); 

而且我可以得到該行的數據時,我使用選擇一行:

selectionChanged: function (e) { 

          var selected = e.target.contentTable.find(".sui-selected"); 

          if (selected.length > 0) { 
            message.innerHTML = selected.get(0).innerHTML; 
          } 
          else { 
            message.innerHTML = ""; 
          } 
        } 

最後我知道如何打電話給一個服務,例如:

 $("#grid").shieldGrid({ 
     dataSource: { 
      events: { 
       error: function (event) { 
        if (event.errorType == "transport") { 
         // transport error is an ajax error; event holds the xhr object 
         alert(JSON.stringify(event)); 
         alert("transport error: " + event.error.statusText); 
         // reload the data source if the operation that failed was save 
         if (event.operation == "save") { 
          this.read(); 
         } 
        } 
        else { 
         // other data source error - validation, etc 
         alert(event.errorType + " error: " + event.error); 
        } 
       }, 
      }, 
      remote: { 
       read: { 
        type: "POST", 
        url: "abastecimientos/get", 
        contentType: "application/json", 
        dataType: "json" 
       }, 
       modify: { 
        create: function (items, success, error) { 
         var newItem = items[0]; 
         $.ajax({ 
          type: "POST", 

我需要執行以下任務:

  1. 在我的網格選擇一行。
  2. 按下插入按鈕。
  3. 顯示我的自定義窗口中的行數據。
  4. 修改顯示的數據。
  5. 按下保存按鈕並調用遠程服務以插入新行。

我知道如何分別完成這些任務,但任務3和5對我來說並不清楚。 我谷歌所有的互聯網,但我無法弄清楚如何做到這一點。

請任何建議,我將不勝感激。

胡安

回答