9

DevExpressのGridViewを使用して、セルが選択されたとき(または単にクリックされたとき)に(クライアント側の)イベントをトリガーしたいと思います。

行全体のクリックイベントを取得する方法はすでにありますが、いじくり回すこともドキュメントも、セルに対してこれを実現する方法の手がかりを与えてくれません。

これは私が行に対して持っているものです:

Html.DevExpress().GridView(settings =>
{
    // removed a lot of code here
    settings.ClientSideEvents.RowDblClick = "OnGridRowDblClick";
}).Bind(Model).GetHtml()

OnGridRowDblClickこれにより、行がダブルクリックされたときにjavascript関数が呼び出されます。理想的には次のようなものがあるはずです

settings.ClientSideEvents.CellClick = "OnCellClick";

しかし、これは存在せず、これを達成するための何かを見つけることもできません。

4

1 に答える 1

13

GridViewSettings.HtmlDataCellPreparedイベントを処理することで、個々の DataCell に必要なクライアント側ハンドラーをアタッチすることができます。

function OnCellClick(visibleIndex, fieldName) {
    alert(visibleIndex + " " + fieldName);
}


@Html.DevExpress().GridView(settings => {
    ...
    settings.HtmlDataCellPrepared = (sender, e) => {
        e.Cell.Attributes.Add(
            "onclick",
            string.Format("OnCellClick('{0}', '{1}');", e.VisibleIndex, e.DataColumn.FieldName)
        );
    };

}).Bind(Model).GetHtml()
于 2012-08-07T16:26:50.783 に答える