2016-08-20 48 views
3

我並不瞭解很多Shield UI。文檔對我來說非常模糊。我想要做的是用下面的代碼生成的表格可以編輯。我嘗試了一切,感覺我很接近但沒有用。有人能指導我嗎?另外,我也看過他們的文檔。屏蔽UI XML內聯編輯

<script type="text/javascript"> 
    $(function() { 
    $(document).ready(function()) { 
     $("#grid").shieldGrid({ 
     dataSource: { 
      remote: { 
      read: g, 
      modify: { 
       url: "xml/smt-schedule.xml" 
      }, 


      }, 
      /*End remote */ 

      schema: { 
      type: "xml", 
      data: "ss_schedule", 
      fields: { 
       Id: { 
       path: "ss_id._text" 
       }, 
       Part_Num: { 
       path: "ss_part_num._text" 
       }, 
       ROHS: { 
       path: "ss_rohs._text" 
       }, 
       Wave_SS: { 
       path: "ss_wave_ss._text" 
       }, 
       WO: { 
       path: "ss_wo._text" 
       }, 
       Quantity: { 
       path: "ss_qty._text" 
       }, 
       Duration: { 
       path: "ss_duration._text" 
       }, 
       Start_Date: { 
       path: "ss_wo_start._text" 
       }, 
       Total_Time: { 
       path: "ss_total_time._text" 
       }, 
       Days: { 
       path: "ss_est_days._text" 
       }, 
       Run_Date: { 
       path: "ss_est_run_date._text" 
       }, 
       Pulled: { 
       path: "ss_pulled._text" 
       }, 
       Prep: { 
       path: "ss_prep._text" 
       }, 
       SMT: { 
       path: "ss_smt._text" 
       }, 
       Notes: { 
       path: "ss_notes._text" 
       } 
      }, 

      }, 
      /* Line 48 Schema */ 

     }, 

     /*Begin Code for paging */ 
     paging: { 
      pageSize: 30, 
      pageLinksCount: 10, 
      messages: { 
      infoBarTemplate: "From {0} to {1} items of a total of {2}", 
      firstTooltip: "First page", 
      previousTooltip: "Previous page", 
      nextTooltip: "Next page", 
      lastTooltip: "Last page" 
      } 
     }, 
     /*End of paging start line 75*/ 

     /*End Code for paging */ 

     rowHover: false, 
     columns: [{ 
      field: "Id", 
      width: "20px", 
      editable: false 
      }, { 
      field: "Part_Num", 
      width: "100px", 
      editable: true 
      }, { 
      field: "ROHS", 
      width: "80px", 
      editable: true 
      }, { 
      field: "Wave_SS", 
      title: "Wave/SS", 
      width: "80px" 
      }, { 
      field: "WO", 
      width: "60px", 
      editable: true 
      }, { 
      field: "Quantity", 
      width: "80px", 
      editable: true 
      }, { 
      field: "Duration", 
      width: "80px", 
      editable: true 
      }, { 
      field: "Start_Date", 
      title: "Start Date", 
      width: "80px", 
      type: Date, 
      editable: true 
      }, { 
      field: "Total_Time", 
      title: "Total Time", 
      width: "80px", 
      editable: true 
      }, { 
      field: "Run_Date", 
      title: "Run Date", 
      width: "80px", 
      type: Date, 
      editable: true 
      }, { 
      field: "Pulled", 
      width: "50px", 
      editable: true 
      }, { 
      field: "Prep", 
      width: "50px", 
      editable: true 
      }, { 
      field: "SMT", 
      width: "50px", 
      editable: true 
      }, { 
      field: "Notes", 
      width: "80px", 
      editable: true 
      }, { 
      width: 80, 
      title: " ", 
      buttons: [{ 
       commandName: "edit", 
       caption: "Edit" 
      }, { 
       commandName: "delete", 
       caption: "Delete" 
      }] 
      } 

     ], 
     editing: { 
      enabled: true, 
      Event: "doubleclick", 
      type: "row", 
      mode: "inline", 


      confirmation: { 
      "delete": { 
       enabled: true, 
       template: function(item) { 
       return "Delete work order '" + item.WO + "'?"; 
       } 
      } 
      } 
     }, 

     /*--End toolbar--*/ 


     toolbar: [{ 
      buttons: [{ 
      commandName: "pdf", 
      caption: '<span class="sui-sprite sui-grid-icon-export-pdf"></span> <span class="sui-grid-button-text">Export to PDF</span>' 
      }] 
     }], 
     exportOptions: { 
      proxy: "/filesaver/save", 
      pdf: { 
      fileName: "smt-schedule-report.pdf", 
      author: "Dynalab, Inc.", 
      size: "a4", 
      orientation: "landscape", 
      fontSize: 10, 
      margins: { 
       left: 40 
      } 

      } /*End pdf */ 


     }, 
     /*End expportOptions */ 
     toolbar: [{ 
      buttons: [{ 
      commandName: "insert", 
      caption: "Add Record" 
      }], 
      position: "top" 
     }] 

     }); 
     /* Begin search by typing */ 
     var dataSource = $("#grid").swidget().dataSource, 
     input = $("#filterbox input"), 
     timeout, 
     value; 
     input.on("keydown", function() { 
     clearTimeout(timeout); 
     timeout = setTimeout(function() { 
      value = input.val(); 
      if (value) { 
      dataSource.filter = { 
       or: [{ 
        path: "Part_Num", 
        filter: "contains", 
        value: value 
       }, { 
        path: "WO", 
        filter: "contains", 
        value: value 
       } 

       ] 
      }; 
      } else { 
      dataSource.filter = null; 
      } 
      dataSource.read(); 
     }, 300); 

     /*End search by typing */ 
     }); 
    } 
    }); /*End document.ready */ 
</script> 

回答

4

您可以使用this setting(及其子屬性)啓用編輯。

那麼你應該重寫createupdateremove設置remote.modify下,如圖this example。您可以在其中放置一些回調函數,只要採取類似操作,Grid就會調用這些回調函數。這些函數通常會包含調用服務器端來更新持久位置上的數據的代碼。

+0

那麼我是否需要在列字段中放置editable:true呢?另外,我會用什麼網址?我的文件位於xml/filename.xml –

+0

默認情況下,列可編輯爲true,因此不需要將其明確設置爲true。你應該使用包含XML的資源的相對或絕對URL(更多信息 - http://www.w3.org/Addressing)。 –

+0

好吧,所以我設法讓字段可編輯。我現在正在使用JSON文件。似乎更容易。但是,現在我在更新,刪除或添加新記錄時遇到傳輸錯誤:方法不允許。我正在使用完整的url路徑,此時http:// localhost/DarkAdmin/ –