Ich frage mich, ob mir jemand helfen kann. Ich bin neu in Java Script. Ich habe eine Liste, zu der ich bestimmte Werte in ein Array in JavaScript setze. Was ich versuche, ist, einem Benutzer zu erlauben, einen Wert in einer @ Html.DropDownList auszuwählen, dann diese ID im Array zu finden und auf die anderen Eigenschaften zuzugreifen. Der Teil, mit dem ich ein Problem habe, ruft diese Werte aus dem Array ab. Das JavaScript befindet sich auf derselben Seite wie die Dropdown-Liste. Weitere Details können bei Bedarf bereitgestellt werden.Werte innerhalb eines JavaScript-Arrays abrufen
Dropdown
@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"
})
Erstellen des Array aus einem ViewBag, als globale var (die eine Liste ist).
<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>
Unten ist, wo ich das Problem habe, bei dem Versuch, die richtigen Werte
<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>
Ich versuche, den Wert von StockCode zu erhalten,, Beschreibung, QtyInStock, QtyOnOrder usw.
aktualisieren ich habe auch versucht,
Controler wo GetStockItemsFromDB() eine Liste von Produkten gibt
ViewBag.Products = JsonConvert.SerializeObject(GetStockItemsFromDB().Take(2));
Ansicht
var model = '@Html.Raw(Json.Encode(ViewBag.Products))';
alert(model);
Dies ermöglicht es mir, den Inhalt zu sehen, aber ich kann über sie iterieren die Werte I neeed war
Select (@ ViewBag.StockCodeList ... Haben Sie das @ in Ihrer aktuellen Code? – nocturns2
Ja, aber ich habe auch versucht, die Rasierklinge zu entkommen, ohne Erfolg Ich bin ratlos –