Kendo网格 - 如何在添加和编辑时使用不同的按钮文本?

时间:2014-06-10 12:27:13

标签: kendo-ui kendo-grid kendo-asp.net-mvc

我在Inline Editable Kendo网格上进行了简单的自定义。

当我添加新记录时,“更新”按钮应显示“插入”,在“编辑”模式下,它应具有默认的“更新”按钮名称。

我知道我可以使用命令替换按钮名称,如下所示

columns.Command(commands =>
                {

                    commands.Edit()
                        .Text("MyCustomEdit")
                        .UpdateText("MyCustomUpdate")
                        .CancelText("MyCustomCancel");


                })

但只有在插入新记录的情况下,我该如何实现?

为了更清楚,点击Update以及点击Cancel时显示Insert New recordEdit按钮(编辑现有网格行)

点击“插入新记录”后,我想将“更新”按钮的文本视为创建,在编辑现有行时,按钮的文本应保持为更新< /强>

插入 enter image description here

开启编辑 enter image description here

2 个答案:

答案 0 :(得分:5)

通过在编辑事件中使用以下代码找到方法

function OnEdit(e){
    if (e.model.isNew())
    {

        var update = $(e.container).parent().find(".k-grid-update");
        $(update).html('<span class="k-icon k-update"></span>Insert');
    }
}

答案 1 :(得分:1)

你可以用这种方式使用jQuery找到你的按钮。例如,如果您想要更改&#34;添加新&#34;的文本,它将基于您的控制器名称和网格调用的函数&#34; Read&#34;操作。说你的控制器是&#34; FlowerController&#34;它的读取功能是&#34; Flower_Read&#34;:

$(document).ready(function() {
    $('a[href="/Flower/Flower_Read?grid-mode=insert"]').html('span class="k-icon k-update"></span>Add New Flower');
});

对于行本身的“更新”按钮,您可以执行以下操作:

$('a[href="/Flower/Flower_Read?grid-mode=insert"]').click(function() {
    setTimeout(function() {
      $('a[class*="k-grid-update"]').html('<span class="k-icon k-update"></span>Create');
    }, 500);
});

由于构建DOM的延迟,需要添加超时。