1

ASP.NETMVC3とRazorでjqGridを使用しています。

残りの列と一緒に2つの列をjqGridに追加しようとしています。

追加したい列は

  • 編集
  • 消去

これらの列の値は私がなりたいですActionLink

JqG​​ridの列にActionLinkを追加するにはどうすればよいですか?

これについて教えてください。

アップデート1:@ user1534482の助けを借りてこれを試しましたが、機能しませんでした

colModel: [
    ...
    { name: 'Open', formatter: 'prepareLinks' },
    ...
],

 function prepareLinks(cellvalue, options, rowObject) {
    return "@Html.ActionLink("Open this","Test")";

}

javascriptエラーメッセージ:

SyntaxError: missing ; before statement
[Break On This Error]   

return "<a href="/SomeController/Test">Open this</a>";

SomeController (line 92, col 41)
4

3 に答える 3

5

showlink defined formatterをご覧ください。

質問にはコードがないため、シナリオがどれほど複雑かはわかりませんが、一般的には次のようなコードで十分です。

<script type="text/javascript">
    jQuery("#gridId").jqGrid({
        colNames: [..., 'Edit', 'Delete'],
        colModel: [
            ...
            {name:'EditAction', formatter:'showlink', formatoptions: { baseLinkUrl: '@Url.Action("Edit")' } },
            {name:'DeleteAction', formatter:'showlink', formatoptions: { baseLinkUrl: '@Url.Action("Delete")' } }
        ],
        ...
    });
</script>

行 ID は自動的に追加されます (idNameオプションで方法を制御できます)。追加のパラメーターを渡す必要がある場合は、ドキュメントaddParamのオプションを参照してください。

アップデート

最終的なリンクがどのように生成されるかを明確にするために、次の式を使用できます。

"<a " + ((op.target) ? "target=" + op.target : "") + " href=\"" + op.baseLinkUrl + op.showAction + "?" + op.idName + "=" + rowId + op.addParam + "\">" + cellvalue + "</a>"

opformatoptionsオブジェクトで、 jqGridcellvalueに貼り付けたデータの列の値です。

于 2012-09-13T10:13:54.840 に答える
2

@tpeczekと@user1534482に感謝します

私はついに解決策を得ました、

colModel: [
    ...
    { name: 'Open',
        formatter: function (cellvalue, options, rowObject) {
            return '<a href="/ControllerName/Test/?myId=' + cellvalue + '">' + "Open" + '</a>';
        } 
    },
    ...
],
于 2012-09-13T11:02:33.877 に答える
2

あなたはあなた自身のフォーマッターを使うことができます

 colModel: [

        { name: 'colname', formatter: linkbuilder   },
    ],

and add function

function linkbuilder(cellval, opts, rwdat, _act) {
    return "@Htm.ActionLink()";
}
于 2012-09-13T10:17:03.887 に答える