代码之家  ›  专栏  ›  技术社区  ›  Mahib

如何在剑道网格内联编辑中将数字输入限制在1到12之间

  •  3
  • Mahib  · 技术社区  · 12 年前

    我有一个剑道网格,其中一列的数字应该在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" } },
                    }
                },
    
    3 回复  |  直到 11 年前
        1
  •  4
  •   unicorn2 Luke404    10 年前

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

    $("#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/

        2
  •  0
  •   фымышонок    10 年前

    对于Kendo UI MVC,您可以限制Kendo Grid内联编辑的长度

        $("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")) 
        )
    )
    
        3
  •  0
  •   John Lord    7 年前

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

     columns.Bound(m => m.Inches)
                    .ClientTemplate("<input type=\"number\" value=#= Inches # min=\"0\" max=\"11\" step=\"1\" ></input>")
                    .Width(60);