在 jquery DataTable 初始化中动态设置行 onclick 事件

Dynamically setting row onclick event in jquery DataTable initialization

我正在使用调用我的控制器函数的 ajax 将数据加载到 table。选择新页面或对列进行排序时,我使用 ajax 将数据重新加载到相同的原始控制器功能。这样我就不会立即加载所有项目,仅在需要时加载。我想让每一行都有一个 onclick javascript 函数,我可以从中获取被单击的那一行的列信息。有任何想法吗?控制器功能只是根据用户想要查看的结果范围和排序顺序获取我的数据。

我唯一的 javascript 代码如下:

<script>
    $(function() {
        var oTable;
        oTable = $('#tblItemModel').DataTable({
            "serverSide": true,
            "paginate": true,
            "ajaxSource": "/Finance/ItemListAjax",
            "processing": true,
            "serverMethod": "GET",
            "displayLength": 50
        });
    })
</script>

我的html如下:

<table class="table table-striped at-table" id="tblItemModel">
      <thead>
            <tr>
                <th>
                    Id
                </th>
                <th>
                     @Html.DisplayNameFor(model => model.Name)
                </th>
                <th>
                   @Html.DisplayNameFor(model => model.ListPrice)
                </th>
                <th>
                      @Html.DisplayNameFor(model => model.DiscountPrice)
                </th>
          </tr>
     </thead>
     <tbody class="mousechange"></tbody>
</table>

我一般都是这样工作的,连续点击获取数据...

在数据表()中

    $('#tblItemModel tbody').on('click', 'tr', function () {

       var pos = oTable.fnGetPosition(this);
       var row = oTable.fnGetData(pos);//row = It contains all the data in that row

    });

对于数据表()

    $('#tblItemModel tbody').on('click', 'tr', function () {

       var pos = oTable.row(this).index();
       var row = oTable.row(pos).data();//row = It contains all the data in that row

    });