2017-02-13 31 views
0

我有一個JqGrid表格基於Trirand的簡單分組演示。我做了一些更改,以在​​的組頭中獲得選擇Jqgrid - 選擇組標題與Ajax事件?

我想要做的是...當組頭中選擇的值發生變化時,通過ajax調用將此新值發送到數據庫,並且在下一次JqGrid表加載此值時默認顯示select 。 (select的值位於表格的最後一列,記錄的Id位於第一列)。

我嘗試修改我發現的here它與我的問題類似,但似乎不適用於我想要執行的操作(Here is what I tried - JsFiddle)。

function Test() { 
      $("table tbody").on('change', 'select', function (e) { 
       var currentSelect = $(this); 
       var grid = $('#lstSegPyme'); 
       var id = $(e.target).closest('tr')[0].id; 
       var Codunicocli = grid.jqGrid('getCell', id, 'ccli');     
       if (currentSelect.is(".HEstado")) { 
        alert(id); 
       } 
      });  
     } 

UPDATE 我想通了,如何調用Ajax事件。看來我誤解了複選框的實現。現在我有這樣的東西,它的作品!

loadComplete: function() { 
$("table tbody").on('change', 'select', function(e) { 
    var currentSelect = $(this); 
    var SelectValue = currentSelect.val(); 

    if (currentSelect.is(".HEstado")) { 
    var id = $(this).closest('tr').nextUntil('tr.lstSegPymeghead_0').attr('id'); //Get Row Id 
    var cco = $('#lstSegPyme').jqGrid('getCell', id, 'ccli'); 

    alert(cco); //ajax Code Here 
    } 
}); 

現在我掙扎的唯一的事情是......重新加載頁面,並嘗試設置值選擇

當我在gridComplete功能試過這種

gridComplete: function() { 
        var i, group, cssClass, 
         headerIdPrefix = this.id + "ghead_", 
         groups = $(this).jqGrid("getGridParam", "groupingView").groups, 
         l = groups.length; 

        for (i = 0; i < 1/*l*/; i++) { 
         group = groups[i]; 

         $(this).closest("tr").find("role="option" [value='"+2+"']").attr("selected", "selected") 

        } 
       } 

但似乎我無法獲得選擇。這條線有什麼問題嗎? $(this).closest("tr").find("role="option" [value='"+2+"']").attr("selected", "selected")

回答

0

在Jqgrid尋找其他的東西我找到了我的問題的解決方案。我從用戶@ Oleg發現這個answer,幫助我很多。

如果有人想要做類似的事情,我會舉例here

$("table tbody").on('change', 'select', function (e) { 
    var currentSelect = $(this); 
    var SelectValue = currentSelect.val(); 

if (currentSelect.is(".HEstado")) { 
    var id = $(this).closest('tr').nextUntil('tr.lstSegPymeghead_0').next("tr").attr('id'); //Get Row Id 
    var Codunicocli = $('#lstSegPyme').jqGrid('getCell', id, 'ccli'); 
    var idEstado = $('#lstSegPyme').jqGrid('getCell', id, 'estc'); //Estado guardado en BD 

    alert(idEstado); 

} //End If 
});