Dude, clean up your code before asking questions.
Mock models
public class OrderDetail
{
public int Id { get; set; }
public int OrderNo { get; set; }
public int Quantity { get; set; }
}
public class SalesOrder
{
public int OrderNo { get; set; }
public DateTime OrderTime { get; set; }
}
public class OrderVm
{
public int OrderNo { get; set; }
public int Quantity { get; set; }
}
Controller
public class OrderPackController : Controller
{
private List<OrderDetail> orderDetails;
private List<SalesOrder> orders;
public OrderPackController()
{
orderDetails = new List<OrderDetail>()
{
new OrderDetail() {Id = 1, OrderNo = 11, Quantity = 25},
new OrderDetail() {Id = 2, OrderNo = 11, Quantity = 10},
new OrderDetail() {Id = 3, OrderNo = 12, Quantity = 4},
new OrderDetail() {Id = 4, OrderNo = 13, Quantity = 7}
};
orders = new List<SalesOrder>()
{
new SalesOrder() {OrderNo = 11, OrderTime=DateTime.Now.AddDays(-2)},
new SalesOrder() {OrderNo = 12, OrderTime=DateTime.Now.AddDays(-2)},
new SalesOrder() {OrderNo = 13, OrderTime=DateTime.Now.AddDays(-2)},
};
}
// GET: OrderPack
public ActionResult Index()
{
ViewBag.orderID = new SelectList(orders, "OrderNo", "OrderTime");
return View();
}
[HttpGet]
public JsonResult GetOrderno(int orderId)
{
OrderVm vm = new OrderVm();
vm.OrderNo = orderId;
vm.Quantity = orderDetails.Where(o => o.OrderNo == orderId).Sum(o => o.Quantity);
return Json(vm, JsonRequestBehavior.AllowGet);
}
}
View
@model MvcIdentity.Models.OrderVm
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<div class="form-group">
@Html.LabelFor(model => model.OrderNo, "Select Item", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-3">
@Html.DropDownList("orderID", (SelectList)ViewBag.OrderNo, "Select", htmlAttributes: new { @class = "form-control", @id = "select2-1" })
</div>
@Html.LabelFor(model => model.Quantity, "Quantity goes here", htmlAttributes: new { @class = "control-label col-md-2", @id = "quantity-label"})
@Html.HiddenFor(Model => Model.Quantity)
</div>
@section scripts {
<script>
$("#select2-1").change(function () {
//console.log($("#select2-1").val());
var orderId = $("#select2-1").val();
if (orderId != "") {
GetOrderno(orderId);
}
else {
$("#quantity-label").text("Quantity goes here");
$("#Quantity").empty();
}
});
function GetOrderno(orderId) {
$.ajax({
async: true,
type: 'GET',
dataType: 'JSON',
url: '/OrderPack/GetOrderno',
data: { orderId: orderId },
success: function (data) {
console.log(data);
//populate the hidden field
$("#Quantity").val(data.Quantity);
//populate the label
$("#quantity-label").text(data.Quantity);
},
error: function () {
alert("There is some problem to get.");
}
});
}
</script>
}