0

jqGrid のサブグリッドの各行にボタンを追加しました。これについては、 inline_editing のドキュメントに従いました。

ボタンのクリック時にサーバー側のコードを呼び出したい。しかし、firebug を見ると、ボタンをクリックしてもリクエストが行われていない (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が発生するイベント ハンドラーがない場合。したがって、コールバックを使用できます。クリックしたボタンの元の DOM オブジェクトが必要な場合は、 にあります。clickonCellSelecte.target

于 2012-10-12T11:09:36.610 に答える