首页 > 解决方案 > 如何通过单击 nopcommerce 4.3 中数据表 ColumnProperty 中的按钮来调用自定义链接

问题描述

我想通过单击nopcommerce 4.3中的按钮或任何 url 从数据表 ColumnProperty调用链接。

这是我的数据表代码,

@await Html.PartialAsync("Table", new DataTablesModel
{
    Name = "customerjama-grid",
    Length = Model.CustomerJamaSearchModel.PageSize,
    LengthMenu = Model.CustomerJamaSearchModel.AvailablePageSizes,                      
    ColumnCollection = new List<ColumnProperty>
    {
        new ColumnProperty(nameof(CustomerJamaModel.Date))
            {
                Title = T("Admin.Customer.Jama.Fields.Date").Text,
                Width = "200"
            },
        new ColumnProperty(nameof(CustomerJamaModel.Id))
        {
            Title = T("Admin.Common.PDF").Text,
            Width = "100",                        
            ClassName = NopColumnClassDefaults.Button,
            Render = new RenderCustom("CallController"),
        }
    }
})

现在,为此我正在使用datatable的RenderCustom属性,但问题是RenderCustom中的“CallController”页面加载时调用javascript CallController函数。

但我的要求是,当点击相关的链接时,他们的控制器/javascript url应该被触发

标签: javascripturldatatablecontrollernopcommerce

解决方案


如果我理解正确,您可以在脚本中使用:

      function CallController(data, type, row, meta) 
{
    return '<button onclick="javascript:window.location.href='+ yourlink + '
    ?id=' + data + '; return false;" class="btn btn-default">
    <i class="fa fa-print"></i>@T("Admin.Common.PDF")</button>';
};

或者,如果您想使用自己的控制器和操作,请使用:

 function CallController(data, type, row, meta) 
{
    return '<button onclick="javascript:window.location.href=
    ' + @Url.Action("yourAction", "yourController") + '?id=' + data + ';
    return false;" class="btn btn-default">
    <i class="fa fa-print"></i>@T("Admin.Common.PDF")</button>';
};

请检查 ' 和 "


推荐阅读