Asp.net mvc 剑道下拉列表casecadefrom
我有三个剑道下降列表如下 (一) (二) (三)Asp.net mvc 剑道下拉列表casecadefrom,asp.net-mvc,kendo-ui,kendo-asp.net-mvc,cascade,kendo-dropdown,Asp.net Mvc,Kendo Ui,Kendo Asp.net Mvc,Cascade,Kendo Dropdown,我有三个剑道下降列表如下 (一) (二) (三) 在这里,我的第三个DDL加载基于第一个和第二个DDL。但有时第二个DDL可能没有值。它可以为空。第一个DDL始终具有值。我的问题是,当第二个DDL为空值时,我的第三个DDL没有加载。但我想总是加载我的第三个DDL。因为SemesterID是必需的。SemesterID取决于programmeID或/和SpecializationID。这就是为什么有时第二个DDl可能有空值。我使用Ajax调用解决了这个问题。我使用了第二个DDl级联事件Handel
在这里,我的第三个DDL加载基于第一个和第二个DDL。但有时第二个DDL可能没有值。它可以为空。第一个DDL始终具有值。我的问题是,当第二个DDL为空值时,我的第三个DDL没有加载。但我想总是加载我的第三个DDL。因为SemesterID是必需的。SemesterID取决于programmeID或/和SpecializationID。这就是为什么有时第二个DDl可能有空值。我使用Ajax调用解决了这个问题。我使用了第二个DDl级联事件Handel,如下所示 .Events(m=>m.Cascade(“cascadesp”)) 现在我的第二个DDL
@(Html.Kendo().DropDownListFor(m => m.SpecializationID)
.HtmlAttributes(new { data_value_primitive = "true" })
.Name("SpecializationID")
.DataTextField("SpecializationNameID")
.DataValueField("SpecializationID")
.OptionLabel("Select Below...")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetSpecialization", "Subject").Data("filterSpecialization");
})
.ServerFiltering(true);
})
.Events(m=>m.Cascade("cascadesp"))
.SelectedIndex(0)
.CascadeFrom("ProgrammeID")
)
我的ajax调用是
function cascadesp()
{
getSemesterID($("#ProgrammeID").data("kendoDropDownList").value(),$("#SpecializationID").data("kendoDropDownList").value(),$("#SpecializationLevelID").data("kendoDropDownList").value(),$("#IntakeID").data("kendoDropDownList").value(),$("#intakeYear").val());
}
function getSemesterID(ProgrammeID, SpecializationID, SpecializationLevelID, IntakeID, intakeYear)
{
var ddl = $('#SemesterID').data("kendoDropDownList");
var URL = "/StudentRSRegistration/GetSemester/";
$.ajax({
url: URL,
data: JSON.stringify({ ProgrammeID: ProgrammeID, SpecializationID: SpecializationID, SpecializationLevelID: SpecializationLevelID, IntakeID: IntakeID, intakeYear: intakeYear }),
async: false,
cache: false,
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
ddl.setDataSource(data);
}
});
}
现在,我的semeterd DDL正确地显示了我认为这个小部件不知道如何从一个下拉列表中处理多个级联。您必须手动处理来自逻辑的级联
@(Html.Kendo().DropDownListFor(m => m.SemesterID)
.HtmlAttributes(new { data_value_primitive = "true" })
.OptionLabel("Select Below...")
.Name("SemesterID")
.DataTextField("SemesterName")
.DataValueField("SemesterID")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetSemester", "StudentRSRegistration").Data("loadSemester");
})
.ServerFiltering(true);
})
.SelectedIndex(0)
.CascadeFrom("SpecializationID")
.CascadeFrom("ProgrammeID"`enter code here`)
)
@(Html.Kendo().DropDownListFor(m => m.SpecializationID)
.HtmlAttributes(new { data_value_primitive = "true" })
.Name("SpecializationID")
.DataTextField("SpecializationNameID")
.DataValueField("SpecializationID")
.OptionLabel("Select Below...")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetSpecialization", "Subject").Data("filterSpecialization");
})
.ServerFiltering(true);
})
.Events(m=>m.Cascade("cascadesp"))
.SelectedIndex(0)
.CascadeFrom("ProgrammeID")
)
function cascadesp()
{
getSemesterID($("#ProgrammeID").data("kendoDropDownList").value(),$("#SpecializationID").data("kendoDropDownList").value(),$("#SpecializationLevelID").data("kendoDropDownList").value(),$("#IntakeID").data("kendoDropDownList").value(),$("#intakeYear").val());
}
function getSemesterID(ProgrammeID, SpecializationID, SpecializationLevelID, IntakeID, intakeYear)
{
var ddl = $('#SemesterID').data("kendoDropDownList");
var URL = "/StudentRSRegistration/GetSemester/";
$.ajax({
url: URL,
data: JSON.stringify({ ProgrammeID: ProgrammeID, SpecializationID: SpecializationID, SpecializationLevelID: SpecializationLevelID, IntakeID: IntakeID, intakeYear: intakeYear }),
async: false,
cache: false,
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
ddl.setDataSource(data);
}
});
}