如何解决覆盖Kendo读取参数值
我有一个Kendo DropDown列表,该列表向其读取请求发送了一个附加参数。例如
@(Html.Kendo().DropDownList()
.Name("MyDropdown")
.HtmlAttributes(new { style = "width:100%" })
.Filter("contains")
.Value(ID)
.DataSource(source =>
{
source.Read(read =>
{
read.Action("Dropdown_Read","Dropdowns",new { User = 1});
});
})
)
这工作正常,并且按预期方式,将值1传递给控制器并执行读取。
取决于用户与其他元素的交互,可以再次触发该读取,而我已经通过Javascript做到了
var user = $(#UserList).val(); // 2 for example
$('#MyDropdown').data('kendoDropDownList').dataSource.read({ User: user});
这将触发读取功能,但用户值仍将以1而不是新值的形式发送。对网络活动的检查显示如下:
请求网址: https:// localhost:8080 / Dropdowns / Dropdown_Read?User = 1&User = 2
似乎User属性定义了两次,发送到控制器,然后控制器选择了第一个值,它是原始默认值。有没有办法覆盖此值,然后将新值发送给控制器?
解决方法
这应该相对容易解决。
如果您更改代码:
y = Ax^2 + Bx + C
到
.DataSource(source =>
{
source.Read(read =>
{
read.Action("Dropdown_Read","Dropdowns",new { User = 1});
});
})
然后创建一个Javascript函数,该函数返回您要过滤的值:
即
.DataSource(source =>
{
source.Read(read =>
{
read.Action("Dropdown_Read","Dropdowns").Data("getFilterValue");
});
})
这将为您提供所需的参数结构,并从其他控件发送选定的值。您可能希望添加一些检查代码,以确保已选择一个值,如果未选择,则将发送默认值(如果允许)。
此链接也应该帮助您
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。