传递jqgrid中的对象

时间:2015-10-01 12:14:46

标签: javascript jquery jqgrid grid

我在我的表单上使用jqgrid并且我正在创建列删除并希望在javascript函数中发送对象,代码如下

 {
                    name: "action",
                    align: "center",

                    sortable: false,
                    title: false,
                    fixed: true,
                    search: false,
                    formatter: function (cellValue, options, rowObject) {
                        debugger;
                        var markup = "<a title=\"%ToolTip%\" href=%Href%;>%Text%</a>";
                        var replacements = {
                            "%Text%": "<i class='fa fa-trash' style='color:black'></i>",
                            "%ToolTip%": UserRoles.messages && UserRoles.messages.ClickHereToDelete
                                ? UserRoles.messages.ClickHereToDelete : "",
                            "%Href%": "javascript:UserRoles.deleteUserRoles(" + rowObject + ")"
                        };
                        markup = markup.replace(/%\w+%/g, function (all) {
                            return replacements[all];
                        });
                        return markup;
                    }
                }

我想通过这行

在函数deleteUserRole中发送对象
"%Href%": "javascript:UserRoles.deleteUserRoles(" + rowObject + ")"

但是它给了我输出

<a title="" href="javascript:UserRoles.deleteUserRoles([object" object]);=""><i class="fa fa-trash" style="color:black"></i></a>

任何人都可以帮助我

1 个答案:

答案 0 :(得分:1)

大多数人不需要创建这样的自定义格式化程序,只需使用formatter: "action"就可以使用相应的参数。

重要的是要理解格式化程序的目标是提供HTML片段,该片段将放置在列的单元格(<td>)中。 rowObject通常是行的输入数据,其格式取决于许多因素。

您可能需要使用options.rowId作为UserRoles.deleteUserRoles函数的参数。在函数内部,您可以使用getRowData根据rowid获取数据。

我建议你阅读the answer,所有旧答案都引用了答案。它表明,可以使用自定义格式化程序**的地方"<a href='#'><i class='fa fa-trash' style='color:black'></i></a>",而不使用任何javascript:UserRoles.deleteUserRoles(...)片段。而不是那个可以实现beforeSelectRow回调测试用户点击的列。如果用户点击了<a>列的"action",则可以执行一些自定义操作。这种方式更有效,因为不需要将全局函数绑定到列的每个<a>元素。可以通过删除<a>并仅在列中保留<i class='fa fa-trash' style='color:black'></i>来简化列的内容。 beforeSelectRow回调的代码将是相同的。