【问题标题】:multiple parameters at render function渲染函数中的多个参数
【发布时间】:2021-03-16 08:38:00
【问题描述】:

我有一个表,最后一列是更新按钮。

仅当订单状态为“已接受”时按钮才可见。 按钮将在 url 中发送 id 参数。

所以在"render": function (data)这一行,数据应该同时包含id和orderStatus。

我尝试了一些东西,但没有任何效果,

谢谢。

这是整个脚本:

<script>
 $(document).ready(function () {
  $('#tblData').DataTable({
             "ajax": {
                      "url": "OrderAdmin/GetList",
                      "type": "POST",
                      "datatype": "json"
                    },
                    "columns": [
                        { "data": "id", "name": "Id" },
                        { "data": "orderStatus", "name": "OrderStatus" },
                        { "data": "productName", "name": "ProductName" },
                        { "data": "stringDate", "name": "StringDate" },
                        { "data": "userName", "name": "UserName" },
                        { "data": "storeName", "name": "StoreName" },
                        { "data": "quantity", "name": "Quantity" },
                        { "data": "cost", "name": "Cost" },
                        { "data": "fullAddress", "name": "FullAddress" },
                        { "data": "trackingNumber", "name": "TrackingNumber" },
                        {
                            "data": "orderStatus", 
                            "render": function (data) {//How to pass orderStatus and id here
                                return `
                        <div class="text-center">
                            <a href="/Admin/OrderAdmin/UpdateOrder/${data}" class="btn btn-success text- 
                                white" style="cursor:pointer">
                                <i class="fas fa-edit"></i>
                            </a>
                        </div>
                         `;
                            }, "width": "5%"
                        }
                    ],
                    "serverSide": "true",
                    "order": [0, "desc"], 
                    "processing":"true"
                });
            });</script>

解决方案:

{
                            "data": {
                                "orderStatus": "orderStatus",
                                "id": "id"
                            },
                            "render": function (data) {
                                    if (data.orderStatus == 'Accepted') {
                                        window.alert('in if');return `
                        <div class="text-center">
                            <a href="/Admin/OrderAdmin/UpdateOrder/${data}" class="btn btn-success text-white" style="cursor:pointer">
                                <i class="fas fa-edit"></i>
                            </a>
                        </div>
                         `}
                                    else { window.alert('in if2'); return `<div></div>` }
                            }, "width": "5%"
                        }

【问题讨论】:

    标签: javascript ajax asp.net-mvc asp.net-core


    【解决方案1】:

    如何在此处传递 orderStatus 和 id

    doc about data renderer in DataTables中,我们可以发现该函数可以传入三个参数。

    要达到要求,可以试试下面的代码sn-p。

    {
        "data": "orderStatus",
        "render": function (data, type, row) {
    
            //get id of current row
            var id = row.id;
            console.log(id);
    
            //modify the href attribute with id value based on actual requirement
    
            return `
            <div class="text-center">
                <a href="/Admin/OrderAdmin/UpdateOrder/${data}" class="btn btn-success text- 
                    white" style="cursor:pointer">
                    <i class="fas fa-edit"></i>
                </a>
            </div>
                `;
        }, "width": "5%"
    }
    

    【讨论】:

      猜你喜欢
      • 2019-07-24
      • 2018-06-15
      • 1970-01-01
      • 2019-01-19
      • 1970-01-01
      • 1970-01-01
      • 2018-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多