代码之家  ›  专栏  ›  技术社区  ›  Lars Holdgaard

发布集合-在表行上添加类时为空/空

  •  0
  • Lars Holdgaard  · 技术社区  · 6 年前

    我有一个简单的ASP.NET MVC应用程序,在该应用程序中,我们的用户有一个表,其中有一些选项可以编辑某些设置。

    这个表是使用jquery动态构建的,因为这是一些遗留代码。生成表格的代码是:

    函数setinvoiceTable(result){
    result.overduespaged.foreach(函数(项,索引){
    
    var externalname='overduespaged['+index+'].externalInvoiceGuid';
    var debtorname='过度使用'+索引+']。债务人';
    var visiblename='overduespaged['+index+'].isselected';
    
    var externalInvoiceGuidField='<input type=''hidden''value=''''''''''+item.externalInvoiceGuid+'''name='''''''''''''''/>';
    var debtorfield='<input type=''hidden''value=''''''+item.debtor+'\'name=''''+debtorname+'\'/>';
    var invisibleField='<input type=''hidden''value=''false''name=''''''''''+visiblename+'''id=''''''''''''/></label>';
    var visiblefield='<label><input type=\'checkbox\'value=\'true\'name=\''+visiblename+'\'id=\''+visiblename+'\'/>开始sag';
    
    var insertstr=“<tr>”。+
    “<td>”+externalInvoiceGuidField+debtorField+visibleField+invisibleField+“</td>”“+
    “<td>”+item.invoiceid+“</td>”。+
    “<td>”+item.debtor+“</td>”。+
    “<td>”+item.datestring+“</td>”。+
    “<td>”+item.daysinceduestring+“</td>”。+
    “<td>”+item.grossAmountString+“</td>”。+
    “<td>”+item.remainderamountstring+“</td>”。+
    “& LT/TR & GT”;
    $(‘会计发票表’)附加(insertstr);
    (});
    }
    < /代码> 
    
    

    当我发帖的时候,这对我们非常有效。我们的控制器中有一个端点具有以下签名:

    [system.web.mvc.httppost]
    公共操作结果StartDebtCollectionCases(UpcomingDashboardViewModel VM)
    {
    /代码
    }
    < /代码> 
    
    

    我正在构建的集合是overduespaged这是我们视图模型的一部分:

    public class upcomingDashboardViewModel
    {
    public list<overdueupComingVoiceViewModel>overduuesPaged get;set;
    //更多与问题无关的内容
    }
    < /代码> 
    
    

    这是我的挑战

    我在中添加了一个css类,如下所示:row like this:。

    添加了新代码 var removeClass='确定'; if(item.isalreadycase){ visiblefield='<label type=“text”>allerede startet</label>'; removeClass='删除'; }否则,如果(item.isblocked){ visibleField='<label type=“text”>周六</label>'; removeClass='删除'; } 否则,如果(item.currency!=“DKK”){ visiblefield='<label type=“text”>faktura skal vre dansk valuta</label>'; removeClass='删除'; } var insertstr=“<tr class=''+removeclass+”'>“”+ “<td>”+externalInvoiceGuidField+debtorField+visibleField+invisibleField+“</td>”“+ //以上代码的其余部分 < /代码>

    现在,我得到了一个和以前完全一样的表,但是有一个类,要么是OK,要么是Remove。

    但是,当我现在做文章时,整个集合,overduespaged,为空:

    我试图将类添加到<td>中,但随后集合为空。

    有什么问题吗?< P / P因为这是一些遗留代码,所以使用jquery。制作表格的代码是:

    function setInvoiceTable(result) {
            result.OverduesPaged.forEach(function (item, index) {
    
                var externalName = 'OverduesPaged[' + index + '].ExternalInvoiceGuid';
                var debtorName = 'OverduesPaged[' + index + '].Debtor';
                var visibleName = 'OverduesPaged[' + index + '].IsSelected';
    
                var externalInvoiceGuidField = '<input type=\'hidden\' value=\'' + item.ExternalInvoiceGuid + '\' name=\'' + externalName+ '\' />';
                var debtorField = '<input type=\'hidden\' value=\'' + item.Debtor + '\' name=\'' + debtorName + '\' />';
                var invisibleField = '<input type=\'hidden\' value=\'false\' name=\'' + visibleName + '\' id=\'' + visibleName + '\' /></label>';
                var visibleField = '<label><input type=\'checkbox\' value=\'true\' name=\'' + visibleName + '\' id=\'' + visibleName + '\' />  Start sag';
    
                var insertStr = "<tr>" +
                    "<td>" + externalInvoiceGuidField + debtorField + visibleField + invisibleField + "</td>" +
                    "<td>" + item.InvoiceId + "</td>" +
                    "<td>" + item.Debtor + "</td>" +
                    "<td>" + item.DateString +"</td>" +
                    "<td>" + item.DaysSinceDueString +"</td>" +
                    "<td>" + item.GrossAmountString + "</td>" +
                    "<td>" + item.RemainderAmountString + "</td>" +
                    "</tr>";
                $('#accounting_invoices_table').append(insertStr);
            });
        }
    

    当我发帖的时候,这对我们非常有效。我们的控制器中有一个端点具有此签名:

    [System.Web.Mvc.HttpPost]
    public ActionResult StartDebtCollectionCases(UpcomingDashboardViewModel vm)
    {
        // code
    }
    

    我正在建造的收藏品是OverduesPaged这是我们的视图模型的一部分:

    public class UpcomingDashboardViewModel
    {
        public List<OverdueUpcomingInvoiceViewModel> OverduesPaged { get; set; }
        // more stuff not relevant to question
    }
    

    这是我的挑战:

    我已将CSS类添加到<tr>这样排:

                // new code added
                var removeClass = 'ok';
                if (item.IsAlreadyCase) {
                    visibleField = '<label type="text">Allerede startet</label>';
                    removeClass = 'remove';
                } else if (item.IsBlocked) {
                    visibleField = '<label type="text">Sat i bero</label>';
                    removeClass = 'remove';
                }
                else if (item.Currency != "DKK") {
                    visibleField = '<label type="text">Faktura skal være dansk valuta</label>';
                    removeClass = 'remove';
                }
    
                var insertStr = "<tr class='" + removeClass + "'>" +
                    "<td>" + externalInvoiceGuidField + debtorField + visibleField + invisibleField + "</td>" +
                // rest of code from above
    

    现在我得到了一个和以前完全一样的表,但是有一个类,要么是OK,要么是REMOVE。

    但是,当我现在做文章的时候,整个收藏,过度寻呼,为空:

    enter image description here

    我试图将类添加到<td>相反,但是集合为空。

    有什么问题吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   user3559349    6 年前

    if else if <label> visibleField + invisibleField < visibleField invisibleField </label>

    <

    Json <form>

    <div id="newrow" style="display:none">
        <tr>
            <td>
                <input class="invoice" type="hidden" name="OverduesPaged[#].ExternalInvoiceGuid value />
                <input class="debtor" type="hidden" name="OverduesPaged[#].Debtor value />
                ....
            </td>
            ....
        </tr>
    </div>
    

    var table = $('#accounting_invoices_table');
    result.OverduesPaged.forEach(function (item, index) {
        var clone = $('#newrow').clone();
        // Update indexer
        clone.html($(clone).html().replace(/\[#\]/g, '[' + index + ']'));
        // Update values
        clone.find('.invoice').val(item.ExternalInvoiceGuid);
        ....
        table.append(clone.html());
    });
    

    id . [ ]