如何设置异步数据源更改事件的值?
How can I set a value from an asynch DataSource Change Event?
我有这段代码:
<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
的异步请求后检索(作为 json)。
获得它后,我会将其值设置为 MVC HiddenField
,然后发送回服务器。
如何通过 Kendo
更改事件传递该值?
您应该处理 "select" 事件以获取所选项目。来自 kendo 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");
}
}
};
但是您只能通过 "change" 事件获得一些行为。
<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>
我有这段代码:
<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
的异步请求后检索(作为 json)。
获得它后,我会将其值设置为 MVC HiddenField
,然后发送回服务器。
如何通过 Kendo
更改事件传递该值?
您应该处理 "select" 事件以获取所选项目。来自 kendo 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");
}
}
};
但是您只能通过 "change" 事件获得一些行为。
<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>