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 回答