1

我有一个剑道窗口(模态),我正在填充各种元素,以便在我的应用程序中收集“小部件”的不同属性。我有下拉列表、数字文本框、多选等。我已经为所有这些设置了更改事件,例如下面的下拉列表:

@(Html.Kendo().DropDownList()
    .Name("property-edit-" + @WidgetProperty.widget_property)
    .HtmlAttributes(new { @class = "widget-property-value-edit andon-type-" + WidgetProperty.widget_property_type.ToLower(), style = "width:300px; height: 30px" })
    .DataTextField("tag_name")
    .DataValueField("tag_name")
    .Value(WidgetProperty.widget_property_value)
    .DataSource(source =>
    {
        source.Read(read =>
        {
            read.Action("AndonTagList", "List", new { DataType = Model.widget_data_type });
        })
        .ServerFiltering(true);
    })
    .Enable(true)
    .Events(e => { e.Change("propertyChanged('property-edit-" + @WidgetProperty.widget_property + "')"); })

)

所有 Kendo 控件的更改事件仅在第一次渲染视图并且它们的值通过 .Value() 配置属性填充时触发。无论我选择新值、编辑文本框还是使用微调器,它们都不会再次触发。

下拉呈现的脚本对我来说看起来不错?

kendo.syncReady(function(){jQuery("#property-edit-Tag-Name").kendoDropDownList({"change":propertyChanged('property-edit-Tag-Name'),"dataSource":{"transport":{"read":{"url":"/List/AndonTagList?DataType=Text","data":function() { return kendo.ui.DropDownList.requestData(jQuery("#property-edit-Tag-Name")); }},"prefix":""},"serverFiltering":true,"filter":[],"schema":{"errors":"Errors"}},"dataTextField":"tag_name","dataValueField":"tag_name"});});

我在同一个视图上有非剑道输入,onchange 事件按预期工作。

控制台中没有错误。

这是被调用的函数,没什么特别的:

function propertyChanged(PropertyElement)
    {
        console.log("Element: " + PropertyElement);
    }

有任何想法吗?

4

1 回答 1

0

我试图将参数传递给处理更改事件的函数。不能那样做。

我想要的只是调用函数的元素的名称,这样我就可以得到它。

于 2017-06-26T19:55:20.733 回答