gpt4 book ai didi

kendo-ui - 无法读取 KendoUI 下拉列表值

转载 作者:行者123 更新时间:2023-12-02 00:06:48 25 4
gpt4 key购买 nike

我有以下三个 KendoUI 下拉列表框

@(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 Controller

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();
}

}

这是我保存 Json 数据的类

public class FilterParameter
{
public string Procedure { get; set; }
public int?[] Id;

public FilterParameter()
{
}
}

我遇到的问题是在调用 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 + "]}" });

};

关于kendo-ui - 无法读取 KendoUI 下拉列表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17845424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com