我有一个剑道网格,一列应该是0到12之间的数字。除了HourTimeHours之外,其他任何工作都正常。我不能把min值小于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" } },
}
},
答案 0 :(得分:3)
创建网格时,您必须为该字段指定编辑器。
$("#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
});
}
更新:您还可以使用模板,这样可以让用户清楚地知道该字段是可编辑的。
答案 1 :(得分:0)
对于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"))
)
)
答案 2 :(得分:0)
对于kendo mvc,我可以使用这样的模板进行限制:
columns.Bound(m => m.Inches)
.ClientTemplate("<input type=\"number\" value=#= Inches # min=\"0\" max=\"11\" step=\"1\" ></input>")
.Width(60);