2
當我執行某個javascript函數時,我想要啓用對當前選定單元格的編輯,我有一個具有1個可編輯列的kendo網格。重點是,這是以編程方式發生,而不是通過單擊單元格。代碼當前所做的是選擇需要設置爲編輯模式的單元,但不啓用編輯模式本身。kendogrid選中單元格的編輯模式
編輯(修復):
我不得不索引小區選擇更改爲+1,而行選擇保持不變(可能是因爲頭被視爲一個單元格或東西)。還有一些功能從編輯領域中奪走了焦點,並立即關閉了它。
JS:
$('#txtBarcode').keydown(function (e) {
var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
if (key == 13) {
var grid = $("#PickListDetailGrid").data("kendoGrid");
var dataSource = $("#PickListDetailGrid").data("kendoGrid").dataSource;
var allData = dataSource.data();
var code = this.value;
$.each(allData, function (index, item) {
if (item.ArticleID == code) {
console.log("index :" + index);
var cell = grid.select("tr:eq(" + index + ") td:eq(" + (5) + ")");
grid.editCell(cell);
}
})
}
});
網:
@(Html.Kendo().Grid<TelerikMvcApp1.Models.PickListLineViewModel>()
.Name("PickListDetailGrid")
.Columns(columns =>
{
columns.Bound(c => c.ArticleName);
columns.Bound(c => c.ArticleID);
columns.Bound(c => c.PickID);
columns.Bound(c => c.LineNum);
columns.Bound(c => c.Quantity);
columns.Bound(c => c.PickedQuantity).HtmlAttributes(new { @id = "test" });
columns.Bound(c => c.Status);
})
.Editable(editable => editable.Mode(GridEditMode.InCell))
.HtmlAttributes(new { style = "height: 75%;" })
.Scrollable()
.Groupable()
.Sortable()
.Selectable()
.RowAction(row =>
{
if (row.DataItem.Quantity == row.DataItem.PickedQuantity)
{
row.HtmlAttributes["class"] = "k-state-selected";
}
})
.ToolBar(toolbar =>
{
toolbar.Custom().Text("Return to Picklists")
.HtmlAttributes(new { @style = "color:black; width:100%; height:50%;" })
.Action("Picklist", "PickList");
})
.DataSource(dataSource => dataSource
.Ajax()
.Events(events => events.Error("error"))
.Model(model => model.Id(i => i.PickID))
.Model(model =>
{
model.Field(f => f.PickID).Editable(false);
model.Field(f => f.ArticleID).Editable(false);
model.Field(f => f.LineNum).Editable(false);
model.Field(f => f.Quantity).Editable(false);
model.Field(f => f.ArticleName).Editable(false);
model.Field(f => f.Status).Editable(false);
model.Field(f => f.PickedQuantity).Editable(true);
})
.Read(read => read.Action("PickLines_Read", "PickList", new { name = "id", id = Model.FirstOrDefault().PickID }))
.Update(update => update.Action("submitPickList", "PickList"))
)
.Events(events => events
.Change("onChange")
.Edit("onEdit")
.Save("onSave"))
)
在編輯:
function onEdit(e) {
e.container.find("input").bind("focus", function() {
if (this.style.display != "none") {
var element = this;
setTimeout(function() {
element.select();
})
}
})
setTimeout(function() {
document.activeElement.select();
})
}
已經試過這個,但它沒有效果。 – Alim
你還可以發佈你的onEdit事件定義嗎? –
我已將它添加到主帖子中,它目前確保我在用鼠標點擊打開字段時自動選擇值。 – Alim