2017-02-13 30 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 
});