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

时间:2016-04-15 06:18:47

标签: javascript jquery asp.net-mvc kendo-grid pjax

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

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

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

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

它看起来像这个

enter image description here

javascript funcion:

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

问题是,当我单击铅笔图标上的链接时,它只会将#添加到网址并且没有任何反应,但是当我点击绿色空间时它可以正常工作。 我需要以点击链接的方式触发pjax请求。

这是表格行

的呈现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>

1 个答案:

答案 0 :(得分:0)

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

        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);

它就像一个魅力。