asp.net + Bootstrap 动态表

Posted

技术标签:

【中文标题】asp.net + Bootstrap 动态表【英文标题】:asp.net + Bootstrap dynamically table 【发布时间】:2018-08-22 00:11:46 【问题描述】:

我正在尝试构建一个选项,以使用 bootstrap 和 asp.net 在表中添加和删除行。但是,我在动态添加 DropDownList 时遇到了问题。

我的看法:

<body>
    <div class="container">
        <table id="myTable" class=" table order-list">
            <thead>
                <tr>
                    <th>Payment Category</th>
                    <th>Amount</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td class="col-sm-3">
                        @html.DropDownListFor(m => m.SelectedPaymentCategory, Model.PaymentCategories, "Select a Category", new
                        
                            @class = "form-control"
                        )
                    </td>
                    <td class="col-sm-2">
                        <input type="number" name="amount" class="form-control" />
                    </td>
                    <td class="col-sm-2">
                        <input type="button" class="ibtnDel btn btn-md btn-danger " value="Delete">
                    </td>
                </tr>
            </tbody>
            <tfoot>
                <tr>
                    <td colspan="3" style="text-align: left;">
                        <input type="button" class="btn btn-lg btn-block " id="addrow" value="Add Row" />
                    </td>
                </tr>
                <tr></tr>
            </tfoot>
        </table>
    </div>
</body>

该模型是获取付款类别的简单查询。 然后,我有一个JS来添加和删除表中的行:

$(document).ready(function () 
    var counter = 0;

    $("#addrow").on("click", function () 
        var newRow = $("<tr>");
        var cols = "";
          // HERE IS MY ISSUE. HOW CAN I CREATE THE DropDownList
        cols += '<td><input type="text" class="form-control" name="name' + counter + '"/></td>';
        cols += '<td><input type="number" class="form-control" name="amount' + counter + '"/></td>';

        cols += '<td><input type="button" class="ibtnDel btn btn-md btn-danger "  value="Delete"></td>';
        newRow.append(cols);
        $("table.order-list").append(newRow);
        counter++;
    );



    $("table.order-list").on("click", ".ibtnDel", function (event) 
        $(this).closest("tr").remove();
        counter -= 1
    );


);



function calculateRow(row) 
    var price = +row.find('input[name^="price"]').val();



function calculateGrandTotal() 
    var grandTotal = 0;
    $("table.order-list").find('input[name^="price"]').each(function () 
        grandTotal += +$(this).val();
    );
    $("#grandtotal").text(grandTotal.toFixed(2));

一切正常,但我不知道如何在 JS 中创建 DropDownList。有没有更好的方法?

谢谢

【问题讨论】:

【参考方案1】:

你必须添加一个select 元素:

cols += '<td><select> \
        <option value=“option1”>option1</option> \
        <option value=“option2”>option2</option> \
    </select></td>';

【讨论】:

但是选项是由模型创建的。它们并不总是相同的硬编码 您可以通过编程方式修改选项标签中的任何内容,并根据需要添加更多内容。 哼...我如何“知道”获取选项内容?它在我的模型中(MVC) 您必须使用返回 ddl 值的方法创建一个 WebService。然后使用 AJAX 在 javascript 中获取这些值。 嗯...我是新手。我不知道“ddl 值”

以上是关于asp.net + Bootstrap 动态表的主要内容,如果未能解决你的问题,请参考以下文章

用于从 ASP .NET 更新表的动态 SQL

Bootstrap Style & Surrounding Div tag from ASP.NET Code Behind [重复]

ASP.NET 动态列表视图 Web 应用程序

Asp.Net Mvc通用后台管理系统,bootstrap+easyui+权限管理+ORM

ASP.NET MVC 如何从嵌套对象的视图模型集合中动态创建表结构

使用 ASP.NET 动态数据/LINQ to SQL,如何让两个表字段与同一个外键有关系?