1

我在这里有一个不是我开发的项目。项目技术:ASP.NET MVC、jQuery、Bootstrap 和 KendoUI。而且,它有一个小问题。

KendoComboBox 在您键入时使用 JSON 数据源文本自动完成文本。太棒了!但是,如果您订阅 DataBound 事件来处理它,则此自动完成功能将无法正常工作。它会删除您正在输入的内容。这引起了用户的一些愤怒。

此窗口与创建新寄存器和编辑某些现有寄存器相同...因此,订阅的 DataBound 在编辑时会在 ComboBox 中选择一项。

而且,如果我们要创建一个新的组合框,则在键入时必须自动完成组合框的正常行为。

这是新窗口。自动完成功能不适用于订阅的 DataBound: 创建一个新的 - 我想要自动完成

这是编辑窗口(相同,但已加载)。 编辑选定的 - 与 DataBound 一起使用

如果我删除 DataBound,ComboBox 的自动完成工作正常: 自动完成工作

这是我的 HTML:

<div class="k-field">
    <div class="k-fieldlabel">Responsável:</div>
    <div style="float: left; width: calc(100% - 100px);">
        <input type="text" id="cboResponsavel" name="Responsavel.Id" style="width: 100%;" required validationmessage="Responsável é obrigatório" />
    </div>
</div>

在我的 document.ready 函数中,我有:

$("#cboResponsavel").kendoComboBox({
dataTextField: "Nome",
dataValueField: "Id",
dataSource: {
    type: "json",
    schema: {
        data: "data",
        total: "total"
    },
    transport: {
        read: {
            url: "/Projeto/Projetos/CarregarResponsaveis",
            dataType: "json"
        }
    }       
},
filter: "contains",
suggest: true,
dataBound:function(e){
    e.sender.value(@(Model == null ? "null" : Model.Responsavel.Id.ToString()))
}
});

我的研究:

KendoCombobox 未获取 Localsource jsondata

Kendo UI Demos - ComboBox / 基本用法

剑道 UI 文档 - 组合框 - 事件 - 数据绑定

KendoUI 和 json

kendo ui:如何在组合框 dataBound 事件中删除绑定到某个组合框的数据源的数据项

在数据绑定组合框中选择项目

我也在Kendo UI Fórum中查看了一些帖子。

我已经更新了 jQuery 和 KendoUI 并且仍然存在......

我对 KendoUI 很陌生,我刚刚修复了一些 ASP.NET MVC 项目,所以,我现在不知道如何解决这个问题。请,如果有人可以帮助或给我一个方向,我将不胜感激。

哦,是的,我想修复其他有同样问题的组合......

PS:如果我选择一个值点击它,我可以在这里工作,但这并不高效。

我希望我说得够清楚。感谢您的任何帮助。

4

1 回答 1

3

遇到这个错误!

解决方法跟我一样白痴……哈哈

实际上,我们不需要那个事件。

这是执行相同操作的代码:

$("#cboResponsavel").kendoComboBox({
dataTextField: "Nome",
dataValueField: "Id",
dataSource: {
    type: "json",
    schema: {
        data: "data",
        total: "total"
    },
    transport: {
        read: {
            url: "/Projeto/Projetos/CarregarResponsaveis",
            dataType: "json"
        }
    }
},
filter: "contains",
suggest: true,
value: @(Model == null ? "null" : Model.Responsavel.Id.ToString())
});

这种行为对新的行为很好,它给我带来了编辑模式下的价值。

Onabai的评论有助于发现 DataBound 事件不是问题,而是尝试在其上设置 Value。

解决方案是更改 DataBound 的值,它工作正常!

希望这对其他人有帮助(即使这很简单)。

于 2014-04-04T13:09:55.680 回答