У меня есть ASPxMenu, который я назвал «mnuCategoryOptions», и он имеет 4 элемента, а также у меня есть ASPxPopupControl, который я назвал «popupAddProductCategory». Когда я щелкаю один из элементов в ASPxMenu, я хочу, чтобы он вызывал ASPxPopupControl. Я написал свой код следующим образом, и он не работает:
<dx:ASPxMenu ID = "mnuCategoryOptions" runat = "server" OnItemClick = "mnuCategoryOptions_ItemClick">
<ClientSideEvents ItemClick = "function(s, e)
{
e.processOnServer = false;
if (e.item.name == 'mnuAddCategory') { popupAddProductCategory.Show = true; }
else if (e.item.name == 'mnuEditCategory') { alert('Edit Category'); }
else if (e.item.name == 'mnuDeleteCategory') { alert('Del Category'); }
else if (e.item.name == 'mnuAddProducts') { alert('Add Products'); }
else { e.processOnServer = true; }
}" />
<Items>
<dx:MenuItem Name = "mnuAddCategory" Text = "Add Category"><Image Url = "~/images/GridIcons/add.png"/></dx:MenuItem>
<dx:MenuItem Name = "mnuEditCategory" Text = "Edit Category"><Image Url = "~/images/GridIcons/page_edit.png"/></dx:MenuItem>
<dx:MenuItem Name = "mnuDeleteCategory" Text = "Delete Category"><Image Url = "~/images/GridIcons/delete.png"/></dx:MenuItem>
<dx:MenuItem Name = "mnuAddProducts" Text = "Add Products"><Image Url = "~/images/GridIcons/page_add.png" /></dx:MenuItem>
</Items>
</dx:ASPxMenu>
Посмотрите на строку «if (e.item.name == 'mnuAddCategory') { popupAddProductCategory.Show = true; }». Это линия, которая не работает. Пожалуйста помоги.
С уважением Сиябонга Кубека
Привет, Тецуя, большое спасибо за вклад. Я пробовал popupAddProductCategory.Show(); это не работает.
Что не работает? Сначала убедитесь, что вы устанавливаете ClientInstanceName с тем же именем, что и идентификатор управления всплывающим окном в ASPxPopupControl, а затем узнайте, сталкиваетесь ли вы с ошибкой JS в инструментах разработчика браузера.
Большое спасибо, Тецуя. Теперь это работает.





Предположим, у вас есть ASPxPopupControl управление сервером, подобное этому:
<dx:ASPxPopupControl ID = "popupAddProductCategory" runat = "server" ClientInstanceName = "popupAddProductCategory" ... />
Затем вы должны использовать метод Show(), чтобы показать это всплывающее окно с кодом на стороне клиента:
if (e.item.name == 'mnuAddCategory') {
popupAddProductCategory.Show();
}
Согласно Список членов ASPxClientPopupControlBase, Show — это имя метода, а не свойства. Также необходимо использовать свойство ClientInstanceName из всплывающего элемента управления, если вы хотите использовать то же имя на стороне клиента, что и имя элемента управления.
Ссылка:
А как насчет
popupAddProductCategory.Show();?Show— это не логическое свойство, это функция согласно документации DevExpress.