我有一个名为“mnuCategoryOptions”的ASPxMenu,它有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;}”这一行。这是不起作用的线。请帮忙。
亲切的问候感谢投入
假设你有这样的ASPxPopupControl
服务器控件:
<dx:ASPxPopupControl ID="popupAddProductCategory" runat="server" ClientInstanceName="popupAddProductCategory" ... />
然后你应该使用Show()
方法来显示带有客户端代码的弹出窗口:
if (e.item.name == 'mnuAddCategory') {
popupAddProductCategory.Show();
}
根据ASPxClientPopupControlBase member list,Show
是一种方法的名称,而不是财产。如果要使用相同的客户端名称作为控件名称,则必须使用弹出控件的ClientInstanceName
属性。
参考: