如何在Kendo UI Grid中单击Enter时添加新行

问题描述 投票:0回答:1

我在Kendo UI Grid中寻找一些帮助,我有一个添加新记录的网格,取消更改按钮。当我点击添加新记录按钮时,我得到一个新行,我想在键盘上单击Enter时实现相同的功能。这是我的样本:

<div  id="tstCnfgnMsrGridDiv">
    <div data-role="grid" data-scrollable="true" data-editable="inline" data-resizable="true"
            data-toolbar="['create', 'cancel']"
            data-columns="[
                             { field: 'name'            , title: 'Name', width: 150},
                             { field: 'descr'       , title: 'Description', width: 150},
                             { field: 'createdDate'     , title: 'Created On', type : 'date', 'format' : '{0: MM/dd/yyyy HH:mm:ss}', 'width' : 100},
                             { field: 'createdByName'   , title: 'Created By', width: 100 },
                             { field: 'modifiedDate'    , title: 'Modified On', type : 'date', 'format' : '{0: MM/dd/yyyy HH:mm:ss}', 'width' : 100}
                             { field: 'modifiedByName'  , title: 'Modified By', width: 100},


                         ]"
            data-bind="source: empDataSource, events : {edit : editGrid}"
            data-scrollable='true' 
            data-sortable='true' 
            data-filterable='true'
            data-pageable="{ 
                             pageSize: 15,
                             pageSizes: [15, 50, 100, 200, 500],
                             refresh : true,                                                         
                             buttonCount : 5
                             }"
            style="width: 100%; height: 650px">
    </div>
</div>
<div id="tstCnfgnMsrGridSubDiv"></div>
<script type="text/javascript" src="../resources/js/coreCnfgn/measure.js"></script>
<script>



   $(document).ready(function() {
       var tooltip = $("#tstCnfgnMsrGridDiv").kendoTooltip({
           filter: "th",
           width: 120,
           position: "bottom"
       }).data("kendoTooltip");

       $("#tstCnfgnMsrGridDiv").find("th").click(false);

       **$(document.body).keydown(function(e) {
           if (e.altKey && e.keyCode == 13) {

               $("#tstCnfgnMsrGridDiv").addRow();
           }
       });**
   });
</script>

当我检查kendo.all.min.js创建 - create:{text:"Add new record",imageClass:"k-add",className:"k-grid-add",iconClass:"k-icon"}

k-grid-add类有addRow方法,我尝试在我的html页面中调用相同的方法,但它不起作用。

有人可以帮我这个。

谢谢...

jquery kendo-grid
1个回答
0
投票

可悲的是,因为剑道网格甚至在桌子的任何一个孩子上接管了ENTER,我无法注册一个事件来做逻辑。

如果你看看kendo.all并搜索

case keys.ENTER:
                        e.preventDefault();
                        if (isCell) {
                            if (that.options.editable && that.options.editable.update !== false) {
                                that._cachedCurrent = that.current;
                                that.list._startEditHandler(that.current);
                                $(this).one('keyup', function (e) {
                                    e.stopPropagation();
                                });
                            }
                        } else {
                            that.current.children('a.k-link').click();
                        }
                        break;

如果您愿意,您可以随时更改该来源,但我个人不会。

© www.soinside.com 2019 - 2024. All rights reserved.