3

我有一个剑道网格,一列应该期望一个介于 0 到 12 之间的数字。除了 HourTimeHours 之外,其他一切都运行良好。我不能将最小值小于 0,但我可以为此设置超过 12。请帮忙。

schema: {
            model: {
                id: "ID",
                fields: {
                    ID: { editable: false },
                    TName: { editable: false },
                    HourTimeHours: { editable: true, type: "number", validation: { required: true, min: 0, max: 12 } },
                    Comment: { editable: true, nullable: true },
                    Reason: { editable: false, nullable: true },
                    ChargeRateText: { defaultValue: { CategoryID: "No Charge", CategoryName: "No Charge" } },
                }
            },
4

3 回答 3

4

创建网格时,您必须为该字段指定一个编辑器。

$("#grid").kendoGrid({
    dataSource: dataSource,
    columns: [
        { field: "HourTimeHours", title: "Hours", editor: hoursDropDownEditor }],
    editable: true
});

然后,如果您想要类似剑道数字文本框的东西,您的函数将如下所示:

function hoursDropDownEditor(container, options) {
    $('<input/>')
        .appendTo(container)
        .kendoNumericTextBox({
            min: 1,
            max: 12,
            step: 1
    });
}

更新:您还可以使用模板,让用户清楚地知道该字段是可编辑的。

http://jsfiddle.net/amomsen/vcpWD/1/

于 2013-10-22T14:47:41.927 回答
0

对于 Kendo UI MVC,您可以限制 Kendo Grid Inline Editing 的长度

    $("body").delegate("#percentage", "keyup", function () { 
        $("#percentage").attr('maxlength', '5');
    });

#percentage 是要编辑的单元格的 ID

columns.Bound(p => p.percentage);

所有网格:

@(Html.Kendo().Grid<Internal.Models.ExchangeRateData>()
    .Name("ExchangeGrid") 
    .Columns(columns =>
    { 
        columns.Bound(p => p.targetCurrency);
        columns.Bound(p => p.percentage);
        columns.Command(commands => { commands.Edit(); }); 
    }) 
    .Editable(edit =>
    {
        edit.Mode(GridEditMode.InLine); 
    })
    .DataSource(dataSource => dataSource
        .Ajax()
        .Batch(true)
        .ServerOperation(false)
        .Model(model =>
        {
            model.Id(item => item.targetCurrency);  
        }) 
        .Events(events =>
        {
            events.Sync("onSync");
        })
        .Read(read => read.Action("ExchangeRate_Read", "ExchangeRatesFortius").Data("ReadRequestData"))
        .Update(c => c.Action("Currencies_Update", "ExchangeRatesFortius")) 
    )
)
于 2016-06-10T18:34:11.587 回答
0

对于 kendo mvc,我可以使用这样的模板进行限制:

 columns.Bound(m => m.Inches)
                .ClientTemplate("<input type=\"number\" value=#= Inches # min=\"0\" max=\"11\" step=\"1\" ></input>")
                .Width(60);
于 2018-11-16T20:31:59.120 回答