#asp.net-mvc-3 #razor #telerik-grid #telerik-mvc
#asp.net-mvc-3 #razor #telerik-grid #telerik-mvc
Вопрос:
У меня есть сетка Telerik в проекте MVC3 с движком Razor layout engine, при этом режим всплывающего редактирования работает нормально. Вот код сетки:
@(Html.Telerik().Grid(Model)
.Name("grid-moedas")
.DataKeys(keys => keys.Add(m => m.ID))
.Columns(columns =>
{
columns.Bound(m => m.Nome);
columns.Bound(m => m.Simbolo);
columns.Bound(m => m.ExtensoNoSingular);
columns.Bound(m => m.ExtensoNoPlural);
columns.Command(commands =>
{
commands.Edit();
});
})
.DataBinding(dataBinding =>
{
dataBinding.Ajax().Select("AjaxGrid", "Moeda");
dataBinding.Ajax().Update("AjaxEdit", "Moeda");
})
.Sortable()
.Editable(editing => editing.Mode(GridEditMode.PopUp))
.Pageable(paging =>
paging.Style(GridPagerStyles.NextPreviousAndInput)
)
.Footer(true)
.ClientEvents(events => events
.OnRowSelect("onRowSelect")
)
.Selectable()
)
Я хочу две вещи:
- Скройте кнопки, созданные для каждой строки в сетке
-
Вызовите команду редактирования при событии OnRowSelect, чтобы всплывающая форма редактирования вызывалась в ответ на щелчок пользователя по строке.
функция onRowSelect(e) { //как вызвать команду редактирования для e.row??? возвращает false; }
Ответ №1:
Вы можете попробовать это:
<script>
function onRowSelect(e) {
var grid = $(this).data("tGrid");
grid.editRow($(e.row));
}
</script>
Комментарии:
1. это работает, и теперь я вижу свою ошибку. Вместо grid.editRow($(e.row)) я пробовал grid.editRow(e.row)).
Ответ №2:
Я не могу легко попробовать это (у меня нет элементов управления Telerik), но есть ли от этого какая-либо польза:
<script type="text/javascript">
function OnRowClick(sender, args) {
var masterTable = sender.get_masterTableView();
masterTable.fireCommand("Edit", args.get_itemIndexHierarchical())
}
</script>
Взято отсюда: http://www.telerik.com/community/forums/aspnet-ajax/grid/grid-edit-on-row-select.aspx#1405657