function GetRow() {
var tBody = $("#table > TBODY")[0];
var row = tBody.insertRow(-1);
row.className += "OrderItems";
var selectProduct = $("#ProductList").find('option:selected').text();
if (selectProduct == 'Select Item')
{
$('#ProductList').after('<span class="error" style="color:red">This field is required</span>');
}
else {
var cell = $(row.insertCell(-1));
cell.append(selectProduct.val($('#ProductList').val()));
var priceOfProduct = $("#UnitPrice").val();
var cell = $(row.insertCell(-1));
cell.append(priceOfProduct);
var quantity = $("#Quantity").val();
if (!quantity)
{
var cell = $(row.insertCell(-1));
cell.html(0);
}
else {
var cell = $(row.insertCell(-1));
cell.append(quantity);
}
var extendedAmount = $("#ExtendedAmount").val();
var cell = $(row.insertCell(-1));
cell.append(extendedAmount);
cell = $(row.insertCell(-1));
var button = $("<input />").attr("type", "button").attr("value", "Remove").attr("class", "btn btn-default");
button.attr("onclick", "RemoveRow(this)");
cell.append(button);
Здесь я добавляю динамические строки с копированием данных, добавленных в предыдущую строку, и эта строка добавляется после нажатия кнопки Добавить
function SubmitOrder() {
var OrderItem = new Array();
$("#table TBODY TR.OrderItems").each(function () {
var row = $(this);
var orders = {};
debugger;
orders.ProductId = row.find('td:eq(0)').find("input").val();//Fix it
orders.UnitPrice = row.find('td:eq(1)').text();
orders.Quantity = row.find('td:eq(2)').text();
orders.ExtendedAmount = row.find('td:eq(3)').text();
OrderItem.push(orders);
});
debugger;
var order = {
"OrderDeliveryDate": $("#OrderDeliveryDate").val(),
"SpecialNotes": $("#SpecialNotes").val(),
"OrderItem":OrderItem
}
console.log(order);
$.ajax({
type: "POST",
url: "/Orders/SubmitOrder",
data: order,
success: function (data) {
alert(data);
}
});
Здесь я делаю массив OrderItems и с этим массивом я хочупередать OrderDeliveryDate и Special Notes, и мне нужно передать эти данные через объект json в контроллер. Здесь я получаю не редактируемый текст в новой строке таблицы, и из добавленных ячеек строки я пытаюсь получить данные и передать их модели, но здесь я получаю только текст из ячеек строки, так как мне нужен productId вместо productимя. Я хочу показать название продукта в новой добавленной ячейке продукта, но хочу передать идентификатор продукта контроллеру
public class OrderItem
{
public int ProductId { get; set; }
public decimal UnitPrice { get; set; }
public int Quantity { get; set; }
public decimal ExtendedAmount { get; set; }
}
public class OrderViewModel
{
public int OrderId { get; set; }
[Display(Name = "Select Product")]
public IEnumerable<SelectListItem> ProductsList { get; set; }
[DataType(DataType.Date)]
[Display(Name ="Date")]
[DisplayFormat(DataFormatString ="{0:mm/sdd/yyyy}")]
public DateTime? OrderDeliveryDate { get; set; }
public DateTime? OrderDate { get; set; }
[StringLength(250, ErrorMessage = "This field can contain 250 characters")]
[Display(Name ="Special Notes")]
public string SpecialNotes { get; set; }
public List<OrderItem> OrderItem { get; set; }
public int? CustomerID { get; set; }
public decimal? OrderTotal { get; set; }
public int StatusID { get; set; }
}}
Это моя модель
[This is the picture of UI of Create Order][1]