如何从异步数据源更改事件中设置值?

时间:2018-04-17 07:50:22

标签: kendo-ui kendo-asp.net-mvc

我是这段代码:

<script type="text/javascript">
    function onCompanyChange(e) {
        // here I need to manage ${Code}
    }
</script>

@(Html.Kendo().DropDownListFor(model => model.Company)
    .Name("Company")
    .DataTextField("Name")
    .DataValueField("Name")
    .DataSource(source =>
    {
        source.Read(read =>
        {
            read.Action("GetCompanies", "Companies");
        })
        .ServerFiltering(false);
    })
    .Events(e => e.Change("onCompanyChange"))
    .Template("<table><tr><td width='300px'>${Name}</td><td width='100px'>${Code}</td><td width='200px'>${State}</td></tr></table>")
    .OptionLabel(Resources.Resources.LblNotDefinedList)
    .Filter("contains")
)

我想向onCompanyChange发送${Code}的值,GetCompanies的值会在向MVC HiddenField发出异步请求后检索(作为json)。

一旦我发现它,我将其值设置为Kendo,然后发送回服务器。

如何通过int num[]更改事件传递该值?

1 个答案:

答案 0 :(得分:1)

你应该处理&#34;选择&#34;获取所选项目的事件。像剑道documentation那样的东西:

function onSelect(e) {
                if ("kendoConsole" in window) {
                    if (e.item) {
                        var dataItem = this.dataItem(e.item);
                        kendoConsole.log("event :: select (" + dataItem.text + " : " + dataItem.value + ")");
                    } else {
                        kendoConsole.log("event :: select");
                    }
                }
            };

但是你只能通过&#34;改变&#34;来获得一些行为。事件

<script type="text/javascript">
    function onCompanyChange(e) {
        // here I need to manage ${Code}
        var selectedIndex = this.select();
        if (selectedIndex != null){
           var selected = this.dataItem(selectedIndex);
           var code = selected.Code;
        }
    }
</script>