每当我的下拉列表关闭时,我都试图刷新部分视图,并将下拉列表中的字符串传递给这些视图(必要时,有些不需要输入字符串)。但是,我不确定如何使javascript和razor相互配合。
每当DropDown关闭时,我都尝试过更新Model.ProdLine.Id值,但是我读到创建页面后该模型实际上消失了,所以这不是一个可行的选择。接下来,我尝试让JS函数将参数传递到方法中,但是由于它们是呈现在客户端的,因此它们从未被重新呈现以更新更改,而无需重置主视图并且实质上被重置为默认值。
<script>
function OnClose() {
var chart = $("#safetyIncident-chart").data("kendoChart");
//Just refresh MonthlyPSAGauge and pass in the current string to the method.
chart.dataSource.read();
}
function DropDownValue() {
var value = $("#productionLine-dropdown").data("kendoDropDownList").value();
return { selectProductionLine: value };
}
</script>
我为此使用了KendoUI TabStrip,但是每个内容方法都可以视为其自己的局部视图,因此不会产生任何影响。
@(Html.Kendo().TabStrip()
.Name("display-tabstrip")
.Animation(animation =>
animation.Open(effect =>
effect.Fade(FadeDirection.In)))
.Items(tabstrip =>
{
tabstrip.Add().Text("Safety")
.Selected(true)
.Content(@<text>
@Html.Action("MonthlySafetyChart", "Display")
</text>);
tabstrip.Add().Text("PSA")
.Content(@<text>
@Html.Action("MonthlyPSAGauge", "Display", new { selectProductionLine = Model.ProdLine.Id})
</text>);
})
)
我想要的是能够从生产线中选择一个不同的值并更新部分视图以匹配该值,但是我不能让整个页面仅刷新部分视图。 随时要求澄清,我会尽力而为!