在我的网格中,我使用自定义格式化程序来编辑其中一个列字段值。
我想在选择网格行时将焦点设置到该可编辑字段。
请帮助我...
这是我的网格
jQuery("#myGrid").jqGrid({
datatype: "local",
colNames:['','','',''],
colModel:[{name:'id',index:'id', width:50, hidden:true},
{name:'activname',index:'activname', width:100, title: false},
{name:'formattedvalue',index:'formattedvalue', width:200, formatter:formatField},
{name:'value',index:'value', hidden:true}],
height: window.innerHeight - 318,
onSelectRow: function(id,stat,e)
{
// here I want to set the focus to the editable field
}});
,这是格式化程序函数
function formatField(cellvalue, options, rowObject){
jQuery("myGrid").jqGrid('setColProp','formattedvalue',
{editable: true,
edittype:"custom",
editoptions: {
custom_element: function(value, options) {
var elemStr = '<div><input type="text" id="'+ options.id +'_id" tabindex="2" maxlength="10" size="10" value="' + value + '" /> </div>';
var $custElem = jQuery(elemStr);
$custElem.find("input").bind("keydown",function(e) {
return dynamicFieldKeyPressed(e, this, rowObject);
});
return $custElem[0];
},
custom_value: function(elem, operation, value){
return jQuery(elem).find("input").val();
}
}
});
return cellvalue;}
答案 0 :(得分:0)
您可以使用
更新:
onSelectRow: function(id,stat,e){
if(id && id!==lastSel){
jQuery('#myGrid').restoreRow(lastSel);
lastSel=id;
}
jQuery('#myGrid').editRow(id, true);
$("#"+id+"_formattedvalue").focus();
},
未经测试但应该正常工作