#javascript #c# #jquery #telerik
#javascript #c# #jquery #telerik
Вопрос:
Я добавляю RadMenuItem в ContextMenu во время выполнения в Telerik RadFileExplorer, как показано ниже: я хочу знать, как я могу получить доступ к этой кнопке radmenuitem с помощью JS / Jquery. Я хочу включить / отключить эту кнопку на стороне клиента :
RadMenuItem lastModifiedDate = new RadMenuItem("Last Modified Date");
lastModifiedDate.PostBack = false;
lastModifiedDate.Value = "LastModifiedDate";
FileExplorer.TreeView.ContextMenus[0].Items.Add(lastModifiedDate);
FileExplorer.GridContextMenu.Items.Add(lastModifiedDate.Clone());
aspx:
<telerik:RadFileExplorer runat="server" ID="FileExplorer" </telerik:RadFileExplorer>
Обновленный код :
function attachHandlers(explorer, args) {
var toolbar = explorer.get_toolbar();
toolbar.add_buttonClicked(toolbarClicked);
//support for grid context menu
var gridContextMenu = explorer.get_gridContextMenu();
var menuItem = gridContextMenu.get_items().getItem(0).set_enabled(false);
gridContextMenu.add_itemClicked(gridContextMenuClicked);
}
function gridContextMenuClicked(toolbar, args)
{
var buttonValue = args.get_item().get_value();
if (buttonValue == "LastModifiedDate")
{
//Do Something
}
}
function toolbarClicked(toolbar, args) {
if (args.get_item().get_value() == "folderCommand")
{
// Do something
}
}
Ответ №1:
Вы проверили эту статью: https://docs .telerik.com/devtools/aspnet-ajax/controls/fileexplorer/how-to/adding-custom-command-buttons
По сути, вы подписываетесь на событие OnClientLoad radFileExplorer:
<telerik:RadFileExplorer RenderMode="Lightweight" ID="RadFileExplorer1" runat="server" OnClientLoad="attachHandlers">
</telerik:RadFileExplorer>
И в его обработчике событий вы можете получить доступ к контекстному меню (и его элементам) следующим образом:
<script>
function attachHandlers(explorer, args)
{
//support for grid context menu
var gridContextMenu = explorer.get_gridContextMenu();
// disable the menu item if some conditions are met
var menuItem = gridContextMenu.get_items().getItem(0).disable();
}
</script>
Комментарии:
1. Спасибо, я дошел до этого момента, но я хочу отключить одну из опций контекстного меню в событии щелчка контекстного меню в функции ниже и включить ее обратно при нажатии OnClientItemSelected — функция gridContextMenuClicked(панель инструментов, аргументы) { var buttonValue = args.get_item().get_value(); если (buttonValue == «custom_Menu») оповещение («пользовательский элемент контекстного меню нажат»); }
2. Эта строка возвращает undefined — var MenuItem = gridContextMenu.get_items().GetItem(0).disable();
3. можете ли вы проверить, что именно не определено в этой строке — это ContextMenu или get_items() возвращает 0 элементов?
4. .disable() делает его неопределенным, контекстное меню , get_items() возвращает правильные элементы
5. и GetItem(0) также возвращает элемент? можете ли вы попробовать set_enabled(false) вместо disable() ? если это все еще не работает — можете ли вы обновить свой вопрос с помощью имеющегося у вас кода?