0

我已经为 jqGrid 的子网格的每一行添加了一个按钮。我只是为此遵循了 inline_editing 的文档。

我想在单击按钮时调用服务器端代码。但是当我看到萤火虫时,它显示没有请求(没有显示任何 url 请求)单击按钮。

下面是我的代码,

subGridRowExpanded: function (subgrid_id, row_id) {
 var subgrid_table_id, pager_id;
 subgrid_table_id = subgrid_id + "_t";
 pager_id = "p_" + subgrid_table_id;
 $("#" + subgrid_id)
     .html("<table id='" + subgrid_table_id + "' class='scroll'></table><div id='" + pager_id + "' class='scroll'></div>");
 $mysubgrid = jQuery("#" + subgrid_table_id);
 $mysubgrid.jqGrid({
     url: "serversub.php",
     datatype: "json",
     colNames: ['Product Id', 'Product Name', 'status', ''],
     width: 700,
     colModel: [{
         name: 'productid',
         index: 'productid',
         width: 55
     }, {
         name: 'productname',
         index: 'productname',
         width: 90
     }, {
         name: 'status',
         index: 'status',
         width: 80,
         search: false
     }, {
         name: 'link',
         index: 'link',
         width: 80,
         search: false
     }],
     rowNum: 20,
     sortname: 'num',
     sortorder: "asc",
     gridComplete: function () {
         var ids = $mysubgrid.jqGrid('getDataIDs');
         for (var i = 0; i < ids.length; i++) {
             var cl = ids[i];

           se = "<input style='height:22px;width:20px;'
  type='button' value='Update' onclick=\"$mysubgrid.saveRow('" + cl + "');\" />";
             $mysubgrid.jqGrid('setRowData', ids[i], {
                 link: se
             });
         }
     },
     editurl: "saveserversub.php"
 });

我在这里错过了什么吗?

谢谢

4

1 回答 1

0

您调用的函数onclick仅包含全局变量。你不能使用局部$mysubgrid变量。

我建议您在自定义格式化程序中创建您需要的按钮并使用(就像在所有其他网格中一样)选项gridview: true。它将提高网格的性能。

此外,我认为您不需要onclick在插入到网格列中的按钮上设置任何内容。如果click事件被触发并且没有冒泡click的事件处理程序发生。所以你可以只使用回调。如果您需要单击按钮的原始 DOM 对象,您可以在.onCellSelecte.target

于 2012-10-12T11:09:36.610 回答