Javascript 如何在带有敲除的select中迭代项目以显示范围值
是否有方法遍历选择列表中的项并计算值。例如,我有以下数据 “因素”:[ 20, 40, 60, 80, 100 ] 它当前显示在一个多选列表框中,我在HTML语句中计算级别 级别0:20 一级:40 二级:60 三级:80 四级:100 我想计算并显示一个起始值,如下所示; 0级:0-20 一级:21-40 二级:41-60 第3级:61-80 四级:81-100 当我显示当前关卡时,如何在淘汰赛中回到上一关卡。例如,在“选择”列表框中,我显示100,上一个级别为80,但当我显示100时,我希望显示上一个级别+1和当前级别100, 四级:81-100 用户可以更改这些值,以便输入15、45、70、80、100的因子。然后我想根据这些数字显示一个范围值,例如0-15、16-45等 有没有办法在knockout/javascript/html中实现这一点 HTML: 使用MVC格式: 型号: 使用制度; 使用System.Collections.Generic; 使用System.Linq; 使用System.WebJavascript 如何在带有敲除的select中迭代项目以显示范围值,javascript,asp.net-mvc,knockout.js,Javascript,Asp.net Mvc,Knockout.js,是否有方法遍历选择列表中的项并计算值。例如,我有以下数据 “因素”:[ 20, 40, 60, 80, 100 ] 它当前显示在一个多选列表框中,我在HTML语句中计算级别 级别0:20 一级:40 二级:60 三级:80 四级:100 我想计算并显示一个起始值,如下所示; 0级:0-20 一级:21-40 二级:41-60 第3级:61-80 四级:81-100 当我显示当前关卡时,如何在淘汰赛中回到上一关卡。例如,在“选择”列表框中,我显示100,上一个级别为80,但当我显示100时,我希望
namespace AuditReview.Models
{
public class ProjectTrustSetting
{
public string ProjectId { get; set; }
public int AdjustmentFactor { get; set; }
public List<int> ListPoints { get; set; }
}
}
namespace AuditReview.Models
{
公共类项目信任设置
{
公共字符串ProjectId{get;set;}
公共整数调整因子{get;set;}
公共列表列表点{get;set;}
}
}
控制器数据示例:
public JsonResult GetProjectTrustSettings()
{
//create list
var trustSetting = new List<ProjectTrustSetting>
{
new ProjectTrustSetting
{
ProjectId = "30729",
AdjustmentFactor = 5,
ListPoints = new List<int>
{ 20, 40, 60, 80, 100}
}
};
return Json(trustSetting, JsonRequestBehavior.AllowGet);
}
public JsonResult GetProjectTrustSettings()
{
//创建列表
var trustSetting=新列表
{
新项目信任设置
{
projectd=“30729”,
调整系数=5,
ListPoints=新列表
{ 20, 40, 60, 80, 100}
}
};
返回Json(信任设置,JsonRequestBehavior.AllowGet);
}
正在寻找创建起始范围值的最佳方法,无论是在knockout、HTML还是JavaScript中。我在想,在我已有的函数中,应该有某种方法可以在HTML中实现这一点
optionsText:function(factor){return'Level'+factors().indexOf(factor)+':'+factor},或作为计算的可观察值或任何其他建议输入敲除
感谢您的帮助您可以在viewmodel上创建一个函数来处理标签的生成。如果向绑定提供函数,它将作为第一个参数在当前上下文中传递,因此可以执行以下操作:
<select data-bind="options: levels,
optionsText: label,
selectedOptions: selectedLevels" multiple="true"></select>
self.label = function(level) {
var index = self.levels().indexOf(level);
if (index === 0) {
return level.name() + " 0-" + level.level();
} else {
var floor = self.levels()[index -1].level() + 1;
return level.name() + " " + floor + "-" + level.level();
}
};
self.label=功能(级别){
var index=self.levels().indexOf(level);
如果(索引==0){
返回level.name()+“0-”+level.level();
}否则{
var floor=self.levels()[index-1].level()+1;
返回level.name()+“”+floor+“-”+level.level();
}
};
这里显示了如何工作。您可以在viewmodel上创建一个函数来处理标签的生成。如果向绑定提供函数,它将作为第一个参数在当前上下文中传递,因此可以执行以下操作:
<select data-bind="options: levels,
optionsText: label,
selectedOptions: selectedLevels" multiple="true"></select>
self.label = function(level) {
var index = self.levels().indexOf(level);
if (index === 0) {
return level.name() + " 0-" + level.level();
} else {
var floor = self.levels()[index -1].level() + 1;
return level.name() + " " + floor + "-" + level.level();
}
};
self.label=功能(级别){
var index=self.levels().indexOf(level);
如果(索引==0){
返回level.name()+“0-”+level.level();
}否则{
var floor=self.levels()[index-1].level()+1;
返回level.name()+“”+floor+“-”+level.level();
}
};
这里展示了这将如何工作
<select data-bind="options: levels,
optionsText: label,
selectedOptions: selectedLevels" multiple="true"></select>
self.label = function(level) {
var index = self.levels().indexOf(level);
if (index === 0) {
return level.name() + " 0-" + level.level();
} else {
var floor = self.levels()[index -1].level() + 1;
return level.name() + " " + floor + "-" + level.level();
}
};