2012-05-16 4 views

답변

0
It is possible we can create context menu on aspxgridview. Find the following example for aspxgridview context menu. 



Default.aspx: 
============= 


<dx:ASPxGridView ID="grvContexMenuExample" runat="server" AutoGenerateColumns="false" 
    KeyFieldName="ID" EnableViewState="true" ClientInstanceName="grdtest" Width="100%" 
    Settings-GridLines="None" OnHtmlRowPrepared="grvContexMenuExample_HtmlRowPrepared"> 
    <ClientSideEvents ContextMenu="function(s,e) { 
                 if(e.objectType == 'header') 
                 { 
                   headerContextMenu.ShowAtPos(e.htmlEvent.clientX, e.htmlEvent.clientY); 
                 } 
                 else if(e.objectType == 'row') 
                 { 
                  headerContextMenu.ShowAtPos(e.htmlEvent.clientX, e.htmlEvent.clientY); 
                 } 
                }" /> 
    <Columns> 

    <%--Your columns goes here--%> 
     <columns> 
</dx:ASPxGridView> 

<!--Start New Context Menu !--> 
<dx:ASPxPopupMenu ID="mnContextMenu" runat="server" ClientInstanceName="headerContextMenu" 
    EnableAnimation="false" PopupHorizontalAlign="OutsideRight" PopupVerticalAlign="TopSides" 
    PopupAction="RightMouseClick"> 
    <Items> 
     <dx:MenuItem Text="New Context Menu1"> 
     </dx:MenuItem> 
    </Items> 
    <ClientSideEvents ItemClick="ContextMenuItemClick" /> 
</dx:ASPxPopupMenu> 
<!--End New Context Menu !--> 







Default.aspx.cs: 
================ 

    protected void grvContexMenuExample_HtmlRowPrepared(object sender, ASPxGridViewTableRowEventArgs e) 
     { 


      if (e.RowType == GridViewRowType.Data) 

       if (e.RowType == GridViewRowType.Header) 
       { 

        e.Row.Attributes.Remove("oncontextmenu"); 
       } 


     } 
관련 문제