首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

EasyUI DataGrid 資料提交至後台

     編輯:程式設計疑難解答

問題

使用 Struts2 + EasyUI DataGrid,點擊 add 動態新增行,後台定義全域變數 code 但表單提交後無法接收任何值。

原型碼

<table id="dg" class="easyui-datagrid">
  <thead><tr>
    <th data-options="field:'code'">編碼</th>
    <th data-options="field:'name'">名稱</th>
    <th data-options="field:'price'">價格</th>
  </tr></thead>
  <tbody>...</tbody>
</table>
<a class="easyui-linkbutton" onclick="add()">add</a>
<script>
function add(){
  $('#dg').datagrid('appendRow',{ code:'003', name:'name3', price:'300' });
}
</script>

解決方向

  1. DataGrid 只是視圖元件,資料需透過 getRows 或 getChanges 取得後,手動組裝表單或 AJAX 提交。
  2. Struts2 需對應 Action 屬性或 List<Entity> 接收,命名規則如 rows[0].code、rows[1].code。
  3. 參考開源專案 llsfw 學習 EasyUI 與後台整合最佳實踐。

關鍵點:動態新增的行屬於客戶端狀態,必須在提交前序列化為表單欄位或 JSON 發送。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved