当前位置: 首页 > 知识库问答 >
问题:

剑道网格编辑事件处理程序不更新行

唐永春
2023-03-14

当使用内联编辑将新项目添加到剑道网格中时,construcd数据源由所选的OrgID过滤。添加一行后,OrgID列不再可编辑(使用isOrgEditable()进行设置),但压缩是可编辑的。不幸的是,级联不能用于编辑,construcd的数据源未经过滤。

为了解决这个问题,我订阅了编辑事件(data-edit="setCoutsDataSource")并手动过滤数据源。这是可行的,但是更新按钮不做任何事情,编辑就会丢失。

<div id="grid">
    <div class="k-content wide">
        <div>
            <div data-role="grid"
                 data-editable="inline"
                 data-edit="setContractsDataSource"
                 data-toolbar="[{ name: 'create', text: 'Add Item' }]"
                 data-columns='[
                 { field: "OrgID", title: "Company", editable: isOrgEditable, editor: orgDropDownEditor, template: "#: lookupForOrg(organisationID) #" },
                 { field: "ContractID", title: "Contract", editor: contractsDropDownEditor, template: "#: lookupForContract(ContractID) #" },
                 { command: ["edit", "destroy"], width: "220px" }
            ]'
            data-sortable="true"
            data-pageable="true"
            data-filterable="true"
            data-bind="source: items"></div>
        </div>
    </div>
</div>

共有1个答案

缪坚诚
2023-03-14

通常情况下,我在写问题时解决了这个问题。为便于将来参考,未更新的原因是未从事件处理程序返回true

function setContractsDataSource(e) {
    let orgID = e.model ? e.model.OrgID : this.dataItem().OrgID;
    if (orgID) {
        $("#contracts").data("kendoDropDownList").setDataSource(contractsData.filter(elt => elt.ContractorID == orgID));
    }
    return true; // fixed it
}

随后确定,该列仅在已包含值时才会更新,即,如果以前该列为空,则不会保存新值。这个telerik论坛帖子帮助解决了这个问题。需要合同列的编辑器valuePrimitive:true

function contractsDropDownEditor(container, options) {
    $('<input id="contracts" name="' + options.field + '"/>')
        .appendTo(container)
        .kendoDropDownList({
            autoBind: false,
            dataTextField: "ContractNo",
            dataValueField: "ContractID",
            dataSource: contractsData,
            optionLabel: "Select contract...",
            valuePrimitive: true
        });
}
 类似资料:
  • 我在剑道网格上使用事件来显示几个隐藏的列。然后,我将在事件中再次隐藏它们。 我的问题是,似乎没有取消编辑模式的事件,所以如果用户单击取消,列会被搞砸。 是否有未记录的事件需要取消,还是需要找到解决方案?

  • 我无法编辑剑道网格内联和弹出两者。单击“保存”按钮时,我的操作方法无法获取当前编辑单元格的值。 控制器代码: 在控制器中,我只得到空值。请帮帮我,我想使用剑道mvvm教学。

  • 我使用Telerik的演示页面上显示的编辑网格。编辑网格后,我希望网格刷新。编辑网格后,网格是否有调用的任何事件? 我试图使用数据绑定事件。在本例中,我读取数据源,但它告诉我刷新网格是一个无限循环。我试图使用saveChanges事件,但它不起作用。

  • 我在剑道格子里有一个剑道组合框。我使用MVVM绑定将组合框绑定到列表中的项目。问题是,当我从combobox下拉列表中选择一个项目时,一切正常,但当我手动在combobox中键入某个内容时,该值不会保存。。。以下是我的网格和组合框代码: 网格: 数据来源: 组合框:

  • 我的项目中有剑道网格 其中一个圆柱,例如Naam圆柱,看起来像这样 它所做的是在弹出窗口中打开一个剑道编辑器,其中包含产品的价值。纳姆 弹出窗口有剑道编辑器、OK和Cancel按钮 这是我的网格图像。带3个点的圆圈是打开剑道编辑器的按钮 这是我的剑道编辑器弹出窗口的图片,文本已经编辑过了 到现在为止,一直都还不错。我在编辑器中获得Naam值。 当我点击OK时,我会打电话给你 它还没有完成; 这就是