1

jeasyui を使用してデータグリッドを作成します。グリッドには最後の行でデータを編集できます。ユーザーが Enter キーを押すたびに、データを保存して新しい行を挿入し、ユーザーが別のデータを入力できるようにします。私の問題は、入力テキストがオートメーション ID を生成するため、jquery によって次のテキスト ボックスにフォーカスを設定する方法です。

私のコード:

    $(function(){
        $('#test').datagrid({
            width:700,
            height:350,
            url:'/getlistdemoajax'<%-- '<%=Configuration
                .getCssServerPath("/resources/vinamilk/datagrid_data.json")%>' --%>,
            sortName: 'code',
            sortOrder: 'asc',
            remoteSort: false,
            idField:'code',
            singleSelect:true,
            columns:[[
                {field:'code',title:'TT',width:40,editor:'text'},
                {field:'name',title:'code',width:110,editor:'text'},
                {field:'name',title:'name',width:110,editor:'text'},
                {field:'name',title:'name2',width:110,editor:'text'},
                {field:'name',title:'name2',width:110,editor:'text'},
                {field:'name',title:'name2',width:110,editor:'text'},

            ]],
            pagination:true,
            onLoadSuccess:function(){
                loadSuccess = false;
                $('#test').datagrid('appendRow',{
                    code:'',
                    name:'',
                    })
                $('#test').datagrid('beginEdit', $('#test').datagrid('getRows').length-1);

        },
        onClickRow:function(rowIndex){
            var rowss = $('#test').datagrid('getSelected');
            var selected = $('#test').datagrid('getSelected');
            if (selected){

                if (selected.code ==''){
                    $('#test').datagrid('beginEdit', rowIndex);
                }
            }
            }

        });
        $.extend($('#test').datagrid.defaults.editors, {  
            text: {  
                init: function(container, options){  
                    var input = $('<input type="text" class="datagrid-editable-input" onkeypress="saveData(event);">').appendTo(container);  
                    return input;  
                },  
                getValue: function(target){  
                    return $(target).val();  
                },  
                setValue: function(target, value){  
                    $(target).val(value);  
                },  
                resize: function(target, width){  
                    var input = $(target);  
                    if ($.boxModel == true){  
                        input.width(width - (input.outerWidth() - input.width()));  
                    } else {  
                        input.width(width);  
                    }  
                }  
            }  
        });  
    function saveData(e)
    {
        // look for window.event in case event isn't passed in
        if (typeof e == 'undefined' && window.event) { e = window.event; }
        if (e.keyCode == 13)
        {
            $('#test').datagrid('acceptChanges');
            //Create one row
            $('#test').datagrid('appendRow',{
                    code:'',
                    name:'',
                    })
            $('#test').datagrid('beginEdit', $('#test').datagrid('getRows').length-1);
        }
    }
4

0 に答える 0