2015-04-17 37 views
1

我有要求在所選行之後插入新行。我在最後插入一個新行的代碼只有在用戶沒有選擇任何行時纔會發生。在JQuery中的選定行之後插入一個新行

strGridId = test_ItemCollection_DefaultGridId(strGridId); 
var grid = jQuery('#' + strGridId); 
var columnModel = grid.jqGrid('getGridParam', 'colModel'); 
var currentItemCollection = test_ItemCollection_Get(strGridId); 

var baseAddItem = function() { 
    var newTItem = proj.page.createTItem(currentItemCollection.strJSOName, strGridId, true); 
    newTItem.setUpdateStatus(UPDATESTATUS.ADD); 
    newTItem.set('transientItem', 1); // just created this item 

    // pre add item event 
    var evt = new TEvent(EVENT_PRE_ADD_ITEM, test_ItemCollection_Get(strGridId)); 
    evt.strGridId = strGridId; 
    evt.newItem = newTItem; 
    if (!test_ItemCollection_fireEvent(evt)) { 
     return false; 
    } 

    currentItemCollection.items.push(newTItem); 

    var rowData = new Object(); 
    for (var iGridLayout = 0; iGridLayout < columnModel.length; iGridLayout++) { 
     if (test_ItemCollection_IsNotJQGridColumn(columnModel[iGridLayout].name)) { 
      rowData[columnModel[iGridLayout].name] = test_ItemCollection_EncodeCellValue(strGridId, currentItemCollection.items.length-1, columnModel[iGridLayout], test_ItemCollection_GetItemDisplayValue(columnModel[iGridLayout], newTItem)); 
     } 
    } 
    grid.jqGrid('addRowData', ''+ (currentItemCollection.items.length-1), rowData); // convert to string for adding 0 item 
    test_ItemCollection_selectRow(strGridId, '' + (currentItemCollection.items.length - 1)); 

    // post add item event 
    var evt2 = new TEvent(EVENT_POST_ADD_ITEM, test_ItemCollection_Get(strGridId)); 
    evt2.strGridId = strGridId; 
    evt2.newItem = newTItem; 
    test_ItemCollection_fireEvent(evt2); 
    test_ItemCollection_AdjustGridHeight(strGridId); 

    return true; 
}; 

我該如何做到這一點?任何幫助將不勝感激。謝謝

+0

** HTTP://stackoverflow.com/questions/22387948/add-a-row-after-the-selected-row-in-jquery-datatables** 檢查出來一次。 – priyanka

回答

1

你可以使用.insertAfter()函數jQuery。欲瞭解更多詳細信息,請點擊此鏈接jQuery insertAfter

0

假設你有id爲yourTable,並已選定的每一行表中有一類selectedRow

添加一個按鈕ID爲button,點擊它來添加一個新行:

$(document).on('click', '#button', function() { 
    var selRow = $('table#yourTable').find('tr.selectedRow'); 
    var sel = selRow.length; 
    var newRow = '<tr><td>This is a new row</td></tr>'; 
    if (sel > 0) { 
     selRow.after(newRow); 
    } else { 
     $('table#yourTable > tbody').append(newRow); 
    } 
}); 
相關問題