在C#ASP.NET中插入数组html
我有一个屏幕,在那里我用js插入动态输入。我使用两个表,其中一个表插入基本信息,另一个表使用FK插入在C#ASP.NET中插入数组html,c#,asp.net,C#,Asp.net,我有一个屏幕,在那里我用js插入动态输入。我使用两个表,其中一个表插入基本信息,另一个表使用FK插入产品 function AddItem() { var nItem = Number($("#nItem").val()) + 1; $("#nItem").val(nItem); var div = document.createElement('DIV'); div.innerHTML = '<label for="Item" class="item-l
产品
function AddItem() {
var nItem = Number($("#nItem").val()) + 1;
$("#nItem").val(nItem);
var div = document.createElement('DIV');
div.innerHTML = '<label for="Item" class="item-label">Item:</label>';
div.innerHTML += '<input type="text" class="item-control" id="Item" name="Item" value="'+nItem+'" style="width:32px;background-color: #e9e9e9;text-align: center" readonly/>';
div.innerHTML += '<label for="Qtd" class="item-label">Qtd:</label>';
div.innerHTML += '<input type="text" class="item-control Vlr" data-val-required="Campo obrigatório" id="Qtd'+nItem+'" name="Qtd" value="0" style="width:100px;text-align: center"/>';
div.innerHTML += '<label for="Vlr" class="item-label">Valor Un:</label>';
div.innerHTML += '<input type="text" class="item-control Vlr" data-val-required="Campo obrigatório" id="Vlr'+nItem+'" name="Vlr" value="0" style="width:100px;text-align: center"/>';
div.innerHTML += '<label for="VlrItem" class="item-label">Valor Item:</label>';
div.innerHTML += '<input type="number" min="1" class="item-control VlrTotal" id="VlrItem'+nItem+'" name="VlrItem" value="0.00" style="width:100px;text-align: center;background-color: #e9e9e9" readonly/>';
div.innerHTML += '<label for="Descricao" class="item-label" >Descrição:</label>';
div.innerHTML += '<input type="text" class="item-control Validar" data-val="true" data-val-required="Campo obrigatório" id="Descricao" name="Descricao" value="" style="width:200px;text-align: center" maxlength="200"/>';
div.innerHTML += '<input type="button" value="X" class="btn btn-danger" onclick="RemoveItem(this)"/>';
document.getElementById("tabs-3").appendChild(div);
$("#Qtd").mask('999');
$(".Vlr").mask('0.000.000,00', { reverse: true });
$(".Vlr").blur(function () {
var Vlr = $("#Vlr" + nItem).val().replace(".", "");
Vlr = Vlr.replace(",", ".");
var VlrItem = parseFloat(Vlr) * parseFloat($("#Qtd" + nItem).val());
$("#VlrItem" + nItem).val(VlrItem.toFixed(2));
});
您可以尝试从期望的对象生成一个数组,并在控制器中绑定到集合。我通常绑定到
I集合
所以你的控制器看起来像
公共操作结果创建(ICollection objs)
{
//你在这里工作吗
}
然后,每个对象属性的HTML输入都会有一个数组索引
var div = document.createElement('DIV');
div.innerHTML = '<label for="Item" class="item-label">Item:</label>';
div.innerHTML += '<input type="text" name="Product[0].ItemProperty" />';
div.innerHTML += '<label for="Qtd" class="item-label">Qtd:</label>';
div.innerHTML += '<input name="Product[0].QTDProperty" />';
//remaining innerhtml for first array item 0 here...
div.innerHTML = '<label for="Item" class="item-label">Item:</label>';
div.innerHTML += '<input type="text" name="Product[1].ItemProperty" />';
div.innerHTML += '<label for="Qtd" class="item-label">Qtd:</label>';
div.innerHTML += '<input name="Product[1].QtdProperty" />';
//remaining innerhtml here...
var div=document.createElement('div');
div.innerHTML='Item:';
div.innerHTML+='';
div.innerHTML+=“Qtd:”;
div.innerHTML+='';
//此处第一个数组项0的剩余innerhtml。。。
div.innerHTML='Item:';
div.innerHTML+='';
div.innerHTML+=“Qtd:”;
div.innerHTML+='';
//剩余的innerhtml在这里。。。
最终,您可以查看此什么是
s
和obj
?显示应该进行处理的完整方法,而不仅仅是一个片段。这没有真正意义。此外,这也无助于我们重现问题。请重构!试着解释一下每一个程序都在做什么。js add项似乎正在创建表单。这不是ajax调用。
var div = document.createElement('DIV');
div.innerHTML = '<label for="Item" class="item-label">Item:</label>';
div.innerHTML += '<input type="text" name="Product[0].ItemProperty" />';
div.innerHTML += '<label for="Qtd" class="item-label">Qtd:</label>';
div.innerHTML += '<input name="Product[0].QTDProperty" />';
//remaining innerhtml for first array item 0 here...
div.innerHTML = '<label for="Item" class="item-label">Item:</label>';
div.innerHTML += '<input type="text" name="Product[1].ItemProperty" />';
div.innerHTML += '<label for="Qtd" class="item-label">Qtd:</label>';
div.innerHTML += '<input name="Product[1].QtdProperty" />';
//remaining innerhtml here...