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

EasyUI Datagrid 數據提交後台完整方案

     編輯:程式設計疑難解答

問題

EasyUI Datagrid 內聯編輯新增行後,表單提交無法獲取數據,Struts2 後台全局變量 code 未接收到值。

核心原因

Datagrid 數據屬於客戶端 JavaScript 數組,非表單元素,普通 form.submit() 不會攜帶。需手動將數據序列化為 JSON,通過 AJAX 提交或注入隱藏域。

推薦實現(AJAX 提交)

function submitGrid() {
    var rows = $('#dg').datagrid('getRows'); // 獲取所有行數據
    $.ajax({
        url: 'saveAction.action',
        type: 'POST',
        contentType: 'application/json',
        data: JSON.stringify({gridData: rows}),
        success: function(res) { $.messager.alert('提示', res.msg); }
    });
}

// Struts2 Action
private List<GridRow> gridData; // 對應 JSON 數組
// getter/setter

替代方案:隱藏域注入

<form id="fm" method="post">
    <input type="hidden" name="gridJson" id="gridJson" />
</form>
$('#fm').submit(function() {
    $('#gridJson').val(JSON.stringify($('#dg').datagrid('getRows')));
});

建議使用 AJAX 方式,結構清晰且易於錯誤處理。

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