【问题标题】:how to bind a form data and rowselected data from jqGrid to server?如何将表单数据和行选择数据从 jqGrid 绑定到服务器?
【发布时间】:2010-09-27 19:52:12
【问题描述】:

我有一个 jgrid,在选择和提交行时,我必须使用包含两个日期字段的 url 提交数据...如何在提交到服务器时将表单和选定行的值绑定在一起?

不胜感激。谢谢!

更新 1:

    jQuery(".sorder").click(function() {
    var earliestDate = jQuery("input#e").val();
    var latestTimeDate = jQuery("input#e").val();
    var grid = jQuery("#orderPreview");
    var id = grid.jqGrid('getGridParam', 'selrow');
    if (id) {
        var ret = grid.jqGrid('getRowData', id);
    }

    $.ajax( {
        type : "POST",
        url : "/cpsb/internalOrderList.do",
        data : {
            method : "create",
            lpn : ret.licensePlateNumber,
            sku : ret.sku,
            description:ret.description,
            cases:ret.caseQuantity,
            hold:ret.isHeld,
            earliestDate:earliestDate,
            latestTimeDate:latestTimeDate
        }

    });

});

【问题讨论】:

  • 如何“提交行”?所选行是否处于内联编辑模式并且您要保存它?
  • @Oleg 我的应用程序就像购物车,我从不同的网格中添加行......而不是我需要从该网格发送所有行(除了从那里的最新时间和最早时间。 ..我的方法在我的问题中更新
  • 我正在像这样从这些输入中添加值 var earlyDate = jQuery("input#e").val(); var latestTimeDate = jQuery("input#e").val();但问题是从orderPreview网格我必须提交所有行而不必选择+需要发送那些日期(最早,最新时间日期)......另一个问题是用url附加这么多数据是一个问题......如何服务器端代码会知道发送了多少行..

标签: jquery forms jqgrid bind


【解决方案1】:

你可以从网格中获取数据

var gridData = jQuery("#orderPreview").getRowData(); // no rowid parameter

那么你可以使用

$.ajax({
    type: "POST",
    url: "/cpsb/internalOrderList.do",
    data: gridData,
    dataType: "json"
});

立即发送数据。因为数据将按 POST 而不是按 GET 发送,所以您没有 URL 限制。

顺便说一下,您在代码中使用的方式

var earliestDate = jQuery("input#e").val();
var latestTimeDate = jQuery("input#e").val();

可能在其中一行中的 id "e" 应该更改。

【讨论】:

  • @Oleg ....是的,从我的代码中错误地复制了一个 id ...我还可以附加最早的时间和 latestTimeDate 值,因为它的形式不同,但我必须发送这些值以及行数据......谢谢!
  • @paul:在 JavaScript 中,向现有对象添加新属性非常容易。就设置在那里:gridData.method="create"; gridData.earliestDate=earliestDate; gridData.latestTimeDate=latestTimeDate;
  • @Oleg 我可以这样做吗 jQuery(".sorder").click(function() { var earlyDate = jQuery("input#e").val(); var latestTimeDate = jQuery( "input#e").val(); var gridData = jQuery("#orderPreview").getRowData(); gridData.method = "create"; gridData.earliestDate=earliestDate; gridData.latestTimeDate=latestTimeDate; $.ajax( { type : "POST", url : "/cpsb/internalOrderList.do", data : gridData, dataType:"json" }); });
  • @paul:是的,我就是这个意思。您应该只解决两次使用“input#e”的问题。
  • 当我尝试发送这些行时..我看到 &undefine=undefine&undefine=undefine&undefine=undefine....不知道为什么它会这样
猜你喜欢
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 1970-01-01
  • 2011-11-18
  • 2019-02-09
  • 2012-08-01
  • 1970-01-01
  • 2011-04-03
相关资源
最近更新 更多