调用javascript函数并将值从局部视图传递给函数

时间:2018-11-21 07:20:34

标签: jquery asp.net-mvc datatables

我已经在accountJS文件中定义了一个函数formatPrice,我想在部分视图中绑定jquery数据表时调用该函数。与此同时,我想将@item.price值传递给此函数。

下面是代码:

@model List<Products>

<table id="datatableResult" class="searchgrid">
<thead>
<tr>
    <th>Id</th>
</tr>
<tr>
    <th>Product Price</th>
</tr>
</thead>
<tbody>
@if (Model != null)
{
     foreach (var item in Model)
    {
      <tr>
         <td>@item.Id</td>
         <td>accountJS.formatPrice(@item.price)</td>
      </tr>
    }
 }
</tbody>
</table>

1 个答案:

答案 0 :(得分:0)

据我所知,accountJS.formatPrice(@item.price)不是有效的函数调用,因为它在<script>块之外被调用并呈现为纯文本。因此,表元素必须设置如下:

@if (Model != null)
{
    foreach (var item in Model)
    {
      <tr>
         <td>@item.Id</td>
         <td>@item.price</td>
      </tr>
    }
}

然后,在DataTable函数中,可以使用row设置内render参数的列索引来获取价格并将其传递给外部JS函数:

<script>
$(function () {
    $('#datatableResult').DataTable({
        // other settings

        columnDefs": [{ 
           "targets": 1, 
           "render": function (data, type, row, meta) { 
               // pass the column index here
               return accountJS.formatPrice(row[1]); 
           } 
        }]

        // other settings
    });
});
<script>

参考:

DataTable - Column rendering

相关问题:

Jquery Datatables How to get column Id in render function