【发布时间】:2016-07-26 18:24:07
【问题描述】:
我想知道是否有人可以帮助我。我是java脚本的新手。我有一个列表,我将某些值放入 JavaScript 中的数组中。我想要做的是允许用户在@Html.DropDownList 中选择一个值,然后在数组中找到该 id 并访问其他其他属性。我遇到问题的部分是从数组中检索这些值。 JavaScript 与下拉列表位于同一页面内。如果需要,可以提供更多细节。
下拉列表
@Html.DropDownList("StockCode", new SelectList(ViewBag.StockCodeList, "Value", "Text"),
new
{
@class = "form-control selectpicker ",
data_show_subtext = "true",
data_live_search = "true",
id = "StockCode",
name = "StockCode"
})
从 ViewBag(这是一个列表)创建数组,作为全局变量。
<script>
Stockarray = @Html.Raw(
Json.Encode(
((List<GetProducts_Result>)ViewBag.AllStock).Select(stock => new
{
StockCode = stock.StockCode,
Description = stock.Description,
QtyInStock = stock.QtyInStock,
QtyOnOrder = stock.QtyOnOrder,
QtyAllocated = stock.QtyAllocated,
QtyLastStockTake = stock.QtyLastStockTake,
StoredPrice = stock.StoredPrice,
})
)
);
</script>
下面是我遇到问题的地方,试图获得正确的值
<script>
function FetchCall() {
var SelectBox = $("#StockCode").val();
var Values = selectWhere(Stockarray,'StockCode', SelectBox);
for (var i=0; i<Values.length; i++)
{
var test = Values[i].value;
var param_value = i +'='+test;
}
alert(param_value.join(', '));
}
function selectWhere(data, propertyName, tofind) {
for (var i = 0; i < data.length; i++) {
if (data[i][propertyName] == tofind) return data[i];
}
return (null);
}
</script>
我正在尝试获取 StockCode、Description、QtyInStock、QtyOnOrder 等的值。
更新我也试过了
GetStockItemsFromDB() 返回产品列表的控制器
ViewBag.Products = JsonConvert.SerializeObject(GetStockItemsFromDB().Take(2));
查看
var model = '@Html.Raw(Json.Encode(ViewBag.Products))';
alert(model);
这允许我查看内容,但我可以遍历它们以获得我需要的值
【问题讨论】:
-
SelectList(@ViewBag.StockCodeList... 你的实际代码中有@吗?
-
是的,但我也尝试过逃离剃须刀但没有成功。我很茫然
标签: javascript jquery arrays asp.net-mvc razor