更改 link href 并在单击其子项 (span) 时使用 Javascript 触发它

Changing link href and triggering it with Javascript when its child (span) is clicked

我正在使用 Pjax 我的 mvc 应用程序如下所示

$(document).pjax('a', '#pjaxContainer');

我有一个 kendo 网格,它有一个自定义命令,可以打开行条目的详细信息页面

 command.Custom("Details").Text("<i class='fa fa-pencil'></i>").Click("ProductDetailView")); });

看起来像这样

javascript 函数 :

function ProductDetailView(e)
{
    var dataItem = this.dataItem($(e.target).closest("tr"));
    var PK = dataItem.PKProduct;
    e.target.href = "/Product/Details/" + PK;
}

问题是当我点击铅笔图标上的 link 时它只会将 # 添加到 url 并且没有任何反应,但是当我点击绿色 space 时它工作正常。 我需要以某种方式在单击 link.

时触发 pjax 请求

这是 table 行 HTML 的渲染结果

    <tr data-uid="c3ddb2d3-5847-4cf7-b892-e2ce49d1db38" role="row">
      <td role="gridcell">
        <a class="k-button k-button-icontext k-grid-Details Maintenance" href="#">
          <span class=" "></span>
          <i class="fa fa-pencil"></i>
        </a>
      </td>
      <td role="gridcell">2</td>
      <td role="gridcell">Brandie</td>
      <td role="gridcell">3</td><td role="gridcell">British Product</td>
      <td data-value-primitive="True" role="gridcell"></td><td role="gridcell">No</td>
    </tr>

我没有找到确切的解决方案,但我找到了另一种方法。 我没有使用自定义命令,而是使用如下列模板:

        Columns.Template(x => { }).ClientTemplate(
            "<a  class='k-button' href='" +
                Url.Action("Details", "Product") +
                "?id=#= PKProduct #'" +
            "><i class='fa fa-pencil'></i></a>"
        ).Hidden(false).Width(100);

它就像一个魅力。