jeasyui combogrid onLoadSuccess触发click / select如果返回1条记录

时间:2014-11-10 09:06:32

标签: jquery jquery-easyui

在jEasyUi combogrid中,如果AJAX只返回单个记录,是否可以触发select或click?这样用户就不必单击单个记录来关闭该框。

<th data-options="field:'itemCode',width:130, 
    editor: {
      type:'combogrid', options:{
        panelWidth:450,
        delay : 400,
        mode : 'remote',
        idField:'ITEM_CODE',
        textField:'ITEM_CODE',
        method:'post',
        url:'server_setup.php',
        required:true,
        loadMsg: 'Searching...',
        onLoadSuccess: function(obj) { 
          if (obj.total == 1) {
            //click on the single record
            $('#datagrid-row-r3-2-0').trigger('click'); <---- this one work
          }
        },
        columns:[[
            {field:'ITEM_CODE',title:'Item Code',width:130},
            {field:'ITEM_NAME',title:'Item Name',width:250},
            {field:'QOH',title:'QOH',width:100}
        ]],
        onBeforeLoad: function(param) {
          if (!param.q || param.q.length<3) return false;
        }
    }   
}">Item Code</th>

我怎样才能获得#datagrid-row-r3-2-0?

1 个答案:

答案 0 :(得分:0)

好吧,从DOM中,我可以通过以下代码跟踪id。

if (obj.total == 1) {
  $('.panel, .combo-p' ).each(function() {
    if ($(this).css('display') == 'block') {
        selectedId = $(this).find('.datagrid-btable').children().children().attr('id');
        if (selectedId != undefined) {
          $('#'+selectedId).trigger('click');
            return;
        }
      }
  });
}

我认为jEasyUi应该有比这种解决方法更好的方法,返回错误的Id非常危险。有人可以帮忙吗?