Kendo ui Can';t读取KendoUI下拉列表值
我有以下三个KendoUI下拉列表框Kendo ui Can';t读取KendoUI下拉列表值,kendo-ui,Kendo Ui,我有以下三个KendoUI下拉列表框 @(Html.Kendo().DropDownList() .HtmlAttributes(new { style = "width:120px;height:20px;font-size:12px;" }) .OptionLabel("Make (any)") .Name("Make") .DataTextField("Name") .DataValueField("Id") .DataSourc
@(Html.Kendo().DropDownList()
.HtmlAttributes(new { style = "width:120px;height:20px;font-size:12px;" })
.OptionLabel("Make (any)")
.Name("Make")
.DataTextField("Name")
.DataValueField("Id")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("UpdateFilters", "Home");
})
.ServerFiltering(true);
})
.Events(e => e.Change("UpdateFilterParameters"))
.SelectedIndex(0) //Select first item.
)
@(Html.Kendo().DropDownList()
.Name("Model")
.HtmlAttributes(new { style = "width:120px;height:20px;font-size:12px;'" })
.OptionLabel("Model (any)")
.DataTextField("Name")
.DataValueField("Id")
.DataSource(source => {
source.Read(read =>
{
read.Action("UpdateFilters", "Home");
})
.ServerFiltering(true);
})
.Enable(true)
.AutoBind(true)
.Events(e => e.Change("UpdateFilterParameters"))
)
@(Html.Kendo().DropDownList()
.Name("Fuel")
.HtmlAttributes(new { style = "width:120px;height:20px;font-size:12px;" })
.OptionLabel("Fuel type (any)")
.DataTextField("Name")
.DataValueField("Id")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("UpdateFilters", "Home");
})
.ServerFiltering(true);
})
.Enable(true)
.AutoBind(true)
.Events(e => e.Change("UpdateFilterParameters"))
)
这是我的MVC控制器
public JsonResult UpdateFilters(string FilterInfo)
{
FilterParameter oFilterInfo = new FilterParameter();
// Json object for filtering
// {'Procedure':'GetMakes','Id':[1,2,3]}
try
{
oFilterInfo = JsonConvert.DeserializeObject<FilterParameter>(FilterInfo);
return Json(UpdateFilterParameter.GetUpdatedFilters(oFilterInfo), JsonRequestBehavior.AllowGet);
}
catch
{
return new JsonResult();
}
}
我遇到的问题是,当调用JavaScript函数UpdateFilterParameters时,我只获取任一列表框的值,而不是所有列表框的值。这就是功能
function UpdateFilterParameters() {
var iMake = $("#Make").val();
var iModel = $("#Model").val();
var iFuel = $("#Fuel").val();
$('#Make').data("kendoDropDownList").dataSource.read(
{ FilterInfo: "{'Procedure':'GetMakes','Id':[" + iMake + "," + iModel + "," + iFuel + "]}" });
$('#Model').data("kendoDropDownList").dataSource.read(
{ FilterInfo: "{'Procedure':'GetModels','Id':[" + iMake + "," + iModel + "," + iFuel + "]}" });
$('#Fuel').data("kendoDropDownList").dataSource.read(
{ FilterInfo: "{'Procedure':'GetFuelTypes','Id':[" + iMake + "," + iModel + "," + iFuel + "]}" });
};
知道为什么会发生这种情况吗?要解决这个问题,我必须将函数UpdateFilterParameters更改为如下所示,以显示Id值或传递NULL。我的代码在反序列化Json时失败
function UpdateFilterParameters() {
var iMake = $("#Make").val();
var iModel = $("#Model").val();
var iFuel = $("#Fuel").val();
var ids = (iMake || "null") + "," + (iModel || "null") + "," + (iFuel || "null");
$('#Make').data("kendoDropDownList").dataSource.read(
{ FilterInfo: "{'Procedure':'GetMakes','Id':[" + ids + "]}" });
$('#Model').data("kendoDropDownList").dataSource.read(
{ FilterInfo: "{'Procedure':'GetModels','Id':[" + ids + "]}" });
$('#Fuel').data("kendoDropDownList").dataSource.read(
{ FilterInfo: "{'Procedure':'GetFuelTypes','Id':[" + ids + "]}" });
};
是否需要任何进一步的信息来帮助解决我的问题?嘿,我正在尝试实现您所拥有的,因为我的不起作用@
http://stackoverflow.com/questions/18410895/how-to-read-kendoui-cascading-dropdownlist-from-controller
但在您的示例中,我无法获取jsonvert.
或UpdateFilterParameter.
两个错误:
在当前上下文中不存在。你能帮我个忙吗?你添加了使用Newsoft.Json的参考吗?当然有,还有什么你能想到的吗?另外,您是否认为有一个很好的理由让我不能从formCollection值和控制器级别的DDl名称/id中执行string filter3=values[“DDLID”]
?
function UpdateFilterParameters() {
var iMake = $("#Make").val();
var iModel = $("#Model").val();
var iFuel = $("#Fuel").val();
var ids = (iMake || "null") + "," + (iModel || "null") + "," + (iFuel || "null");
$('#Make').data("kendoDropDownList").dataSource.read(
{ FilterInfo: "{'Procedure':'GetMakes','Id':[" + ids + "]}" });
$('#Model').data("kendoDropDownList").dataSource.read(
{ FilterInfo: "{'Procedure':'GetModels','Id':[" + ids + "]}" });
$('#Fuel').data("kendoDropDownList").dataSource.read(
{ FilterInfo: "{'Procedure':'GetFuelTypes','Id':[" + ids + "]}" });
};