2012-10-12 36 views
0

我已經爲jqGrid的子網格的每一行添加了一個按鈕。我只是遵循inline_editing的文檔。onclick事件不會觸發添加到jqGrid的每個子網格單元的按鈕

我想單擊按鈕調用服務器端代碼。但是當我看到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" 
}); 

我失去了一些東西在這裏?

感謝

回答

0

的功能,你在onclick叫有隻包含全球變量。你不能使用當地的$mysubgrid變量。

我會建議你創建你需要的內部按鈕custom formatter並使用(如在所有其他網格中)選項gridview: true。它將改善電網的性能。

此外,我認爲你不需要在網格列中插入的按鈕上設置任何onclick。如果click事件觸發,並且click沒有事件處理程序,則發生bubbling。所以你可以使用onCellSelect回調。如果你需要點擊按鈕的原始DOM對象,你可以在e.target找到它。

+0

感謝您的回覆。是的,我使用自定義格式化程序添加了該按鈕。您確實無需在發生事件冒泡時寫入點擊,但我不希望回調函數中的代碼始終發生。它只應發生在按鈕單擊事件上。當然,我已經寫了回調onCellSelect,但事件冒泡反正沒有發生(我不知道爲什麼?)。那麼如何獲得按鈕點擊事件中的rowid? – poddroid

+0

@poddroid:你想要綁定網格體的所有按鈕的'click'事件,你可以使用'$(this).find(「input」)。click(yourEventHandler);'loadComplete'或' gridComplete'。如果在網格和nee中只有很多其他按鈕只綁定特定的按鈕,請參見[這裏](http://stackoverflow.com/a/9153396/315935)和[這裏](http://stackoverflow.com/a/ 9085974/315935)如何找到特殊按鈕。我還建議你另外閱讀關於'onCellSelect'的使用[答案](http://stackoverflow.com/a/5305904/315935)。 – Oleg

相關問題