c# MVC动态添加行到HTML表,但所有字段在一个单元格

本文关键字:字段 单元格 一个 添加行 动态 MVC HTML | 更新日期: 2023-09-27 18:06:15

我是c# MVC新手,需要一些帮助。我正在使用Matt Lunn的示例(http://www.mattlunn.me.uk/blog/2014/08/how-to-dynamically-via-ajax-add-new-items-to-a-bound-list-model-in-asp-mvc-net/)向HTML表中的绑定列表动态添加新项目。但是新项目没有被添加到每个<td>它们都被添加到第一列<td>中但是我将它们分散在相应的列中:

2017财年 ACCOUNT ELEMENT
345789
职位
总监职位名称
营销总监

这是第一个单元格的结果:

新建fybox

新建帐户元素框

新建位置框

新职位名称框

但是想要这个:

第1单元格新增FY框|第2单元格新增Account Element框|第3单元格新增Position框|第4单元格新增Job Title框

这是我的观点:

<i>
<table>
        <tr>
            <th style="width:60px">FY</th>
            <th style="width:230px">ACCOUNT ELEMENT</th>
            <th align="center" style="width:50px">POSITION # <br />(IF APPLICABLE)</th>
            <th style="width:230px">JOB TITLE</th>
            <th style="width:250px">DEPT NAME</th>
            <th style="width:230px">JUSTIFICATION FOR PT HOURS</th>
            <th style="width:100px">HOURS <br />FOR YEAR</th>
            <th style="width:200px">RATE</th>
            <th style="width:200px">TOTAL <br />BUDGET</th>
        </tr>
        <tr id="pt-list">
            @Html.EditorForMany(x => x.ptList, x => x.Index)
        </tr>
        <tr>
            <td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
            <td align="right">@String.Format("{0,14:c}", Model.ptList[0].total_total_budget)</td>
        </tr>
    </table>
        <input type="button" id="add-pt" value="Add Part-Time" />
</i>

脚本:

<i>
<script>
        jQuery(document).ready(function ($) {
            $('#add-pt').on('click', function () {
                jQuery.get('/PCN/AddPT').done(function (html) {
                    $('#pt-list').append(html);
                });
            });
        });
    </script>
</i>

EditorTemplate:

<i>
@model Budget.Models.PCN.PCN_PT
<tr>
    <td>
        @Html.TextBoxFor(x => x.fy, new { @class = "form-controlsmaller" })
        @Html.ValidationMessageFor(x => x.fy)
    </td>
    <td>
        @Html.TextBoxFor(x => x.account_no, new { @class = "form-control" })
        @Html.ValidationMessageFor(x => x.account_no)
    </td>
    <td>
        @Html.TextBoxFor(x => x.position, new { @class = "form-controlsmaller" })
        @Html.ValidationMessageFor(x => x.position)
    </td>
    <td>
        @Html.TextBoxFor(x => x.job_title, new { @class = "form-control" })
        @Html.ValidationMessageFor(x => x.job_title)
    </td>
    <td>
        @Html.TextBoxFor(x => x.dept_name, new { @class = "form-control" })
        @Html.ValidationMessageFor(x => x.dept_name)
    </td>
    <td>
        @Html.TextBoxFor(x => x.justification, new { @class = "form-control" })
        @Html.ValidationMessageFor(x => x.justification)
    </td>
    <td>
        @Html.TextBoxFor(x => x.hrs_for_yr, "{0:0.00} ", new { @class = "form-controlsmaller" })
        @Html.ValidationMessageFor(x => x.hrs_for_yr)
    </td>
    <td>
        $@Html.TextBoxFor(x => x.rate, "{0:0.00} ", new { @class = "form-controlsmall" })
        @Html.ValidationMessageFor(x => x.rate)
    </td>
    <td>
        $@Html.TextBoxFor(x => x.total_budget, "{0:0.00} ", new { @class = "form-controltb" })
        @Html.ValidationMessageFor(x => x.total_budget)
    </td>
</tr>
</i>

PCN控制器添加新行:

<i>
        [OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
        public ActionResult AddPT()
        {
            var pt = new PCN();
            pt.ptList.Add(new PCN.PCN_PT());
            return View(pt);
        }
</i>

当我单击Add Part-Time按钮时,如何使输入字段显示在表的相应列中?

c# MVC动态添加行到HTML表,但所有字段在一个单元格

仔细看看你的信息附加在什么上面。

    <i>
<script>
        jQuery(document).ready(function ($) {
            $('#add-pt').on('click', function () {
                jQuery.get('/PCN/AddPT').done(function (html) {
                    $('#pt-list').append(html);
                });
            });
        });
    </script>
</i>

和你的HTML是:

<tr id="pt-list">
@Html.EditorForMany(x => x.ptList, x => x.Index)
</tr>

所以当你想在表中添加一些内容时,你将html附加到TR元素。

使用后()并为您的值插入新的tr和TDS。

为什么在你的模板中有一个<i> ?删除!表中的行不能是斜体!

仔细看看html中的表应该是什么样子!

http://www.w3schools.com/html/html_tables.asp