如何访问jquery数据表列的值以将其作为参数传递给控制器​​

时间:2018-07-24 16:55:46

标签: jquery datatables

我需要帮助从我的jquery数据表的“ media_type”列中获取值。

从第54行开始,当按下DELETE按钮时,我将3个参数传递给控制器​​(id1,id2,id3)。从第18行的称为“ media_type”的列中获取第三个参数(id3)的值,这就是我遇到的问题。该值将包含“图像”或“ PDF”值。当我在控制器动作(projects / deleteprojectmedia)上设置断点时,输入控制器动作时,第56行的id3值为空白或为空。

我微弱的尝试是在第48和49行:

var currentRow = $(this).closest("tr"); 
var col2 = currentRow.find("td:eq(1)").text();**

但是它不起作用。在第50行上,我发出了警报,以查看该值可能是什么,并指出该值未定义。

提前谢谢!

            <script type='text/javascript'>
                    $(document).ready(function () {
                      var table = $("#projectmedia").DataTable({
                        ajax: {
                            url: "/projects/getprojectmedia/",
                                        "type": "GET",
                                        "datatype": "json",
                                        data: {
                                            id: "@Model.Projects.Project_Guid"
                                            }},
                                           "columns": [
                                                {
                                                data: "project_media_guid",
                                                    render: function (data) {
                                                    return "<a href='/projectmedia/view/" + data + "'>" + "View" + "</a>";
                                                }
                                            },
                                        { "data": "media_type", "autoWidth": true },                     
                                        { "data": "media_title", "autoWidth": true },
                                        {
                                        "data": "entered_date",
                                            render: function (data) {
                                            if (data != null) {
                                                var date = new Date(parseInt(data.substr(6)));
                                                var month = date.getMonth() + 1;
                                                return (month.length > 1 ? month : "0" + month) + "/"
                                                    + date.getDate() + "/" + date.getFullYear()
                                                    + "&nbsp;&nbsp;" + (date.getHours() < 10 ? ("0" + date.getHours()) : date.getHours())
                                                    + ":" + (date.getMinutes() < 10 ? ("0" + date.getMinutes()) : date.getMinutes());
                                            } else {
                                                return "";
                                            }
                                        }
                                    },
                                        {
                                        data: "project_media_guid",
                                            render: function (data) {
                                            return "<button class='btn-link js-delete' data-projectmedia-guid=" + data + ">Delete</button";
                                        }
                                    },
                                    ]
                                });

                                $("#projectmedia").on("click", ".js-delete", function () {
                                    var button = $(this);
                                    bootbox.confirm("Are you sure you want to delete this media?", function (result) {
                                        if (result) {
                                            var currentRow = $(this).closest("tr"); 
                                            var col2 = currentRow.find("td:eq(1)").text();
                                            alert(col2);
                                            $.ajax({
                                                url: "/projects/deleteprojectmedia/",
                                                data: {
                                                    id: button.attr("data-projectmedia-guid"),
                                                    id2: "@Model.Projects.Project_Guid",
                                                    id3: col2
                                                },
                                                method: "DELETE",
                                                success: function () {
                                                    table.row(button.parents("tr")).remove().draw();
                                                }
                                            });
                                        }
                                    });
                                });
                    });
                </script>

这是我的媒体类型列的值为=“图像”的数据表。当我单击“删除”按钮时,我试图获取“ Image”的值并将其作为参数传递。 enter image description here

从警报中可以看到,我尝试获取的值是空白:

enter image description here

最后,当我在控制器中断点时,您可以看到参数为空。 enter image description here

1 个答案:

答案 0 :(得分:0)

我在这里找到了答案: https://datatables.net/forums/discussion/33945/getting-value-of-selected-rows

enter image description here

分配给列的数据元素为media_type 单击删除按钮后,我首先获得所选的行数据。 然后,我通过引用列(rowData.media_type)并将其分配给变量mMediaType来提取该列的值。然后,我将存储在mMediaType中的值与参数id3相关联。我的控制器现在在我的控制器的操作的第三个参数中接收到“图像”或“ PDF”的值。