A string value that specifies the name of the data source field to which the column is bound (the column’s GridViewDataColumn.FieldName property value).
<scripttype="text/javascript">functionGrid_ContextMenu(s, e) {
if (e.objectType == "header") {
var x = ASPxClientUtils.GetEventX(e.htmlEvent);
var y = ASPxClientUtils.GetEventY(e.htmlEvent);
PopupMenu.ShowAtPos(x, y);
}
}
functionOnEndCallback(s, e) {
RefreshMenu();
}
functionRefreshMenu(s, e) {
for (var i = 0; i < PopupMenu.GetItemCount(); i++) {
var item = PopupMenu.GetItem(i);
var column = Grid.GetColumnByField(item.name);
if (!!column) {
item.SetChecked(column.visible);
}
}
}
</script><body><formid="form1"runat="server"><br /><br /><dx:ASPxCallbackPanelrunat="server"ID="CallbackPanel"ClientInstanceName="CallbackPanel"Width="100%"OnCallback="CallbackPanel_Callback"><ClientsideEventsendcallback="OnEndCallback" /><panelcollection><dx:PanelContentrunat="server"><dx:ASPxGridViewID="Grid"runat="server"Width="80%"AutoGenerateColumns="False"DataSourceID="AccessDataSource1"KeyFieldName="ProductID"ClientInstanceName="Grid"><ClientSideEventsContextMenu="Grid_ContextMenu"></ClientSideEvents><Columns><dx:GridViewDataTextColumnFieldName="ProductID"VisibleIndex="0" /><dx:GridViewDataTextColumnFieldName="ProductName"VisibleIndex="1" /><dx:GridViewDataTextColumnFieldName="SupplierID"VisibleIndex="2" /><dx:GridViewDataTextColumnFieldName="CategoryID"VisibleIndex="3" /><dx:GridViewDataTextColumnFieldName="UnitPrice"VisibleIndex="4" /><dx:GridViewDataTextColumnFieldName="UnitsInStock"VisibleIndex="5" /><dx:GridViewDataTextColumnFieldName="UnitsOnOrder"VisibleIndex="6" /><dx:GridViewDataTextColumnFieldName="ReorderLevel"VisibleIndex="7" /><dx:GridViewDataCheckColumnFieldName="Discontinued"VisibleIndex="8" /></Columns><ClientSideEventsContextMenu="Grid_ContextMenu" /></dx:ASPxGridView><%--Otherpanelcontent.Ifyoudonotneedtoupdateanadditionalcontent, youdonotneedtouseASPxCallbackPanel--%></dx:PanelContent></panelcollection></dx:ASPxCallbackPanel><dx:ASPxPopupMenuID="PopupMenu"runat="server"ClientInstanceName="PopupMenu"SyncSelectionMode="None"CloseAction="MouseOut"><clientsideeventsitemclick="function(s, e){ CallbackPanel.PerformCallback('toggle ' + e.item.name); }" /></dx:ASPxPopupMenu><asp:AccessDataSourceID="AccessDataSource1"runat="server"DataFile="~/App_Data/nwind.mdb"SelectCommand="SELECT * FROM [Products]" /></form></body></html>
ImportsMicrosoft.VisualBasicImportsSystemImports DevExpress.Web.ASPxMenu
Imports DevExpress.Web.ASPxGridView
ImportsDevExpress.WebPartialPublicClass _Default
Inherits System.Web.UI.Page
ProtectedSub Page_Load(ByVal sender AsObject, ByVal e As EventArgs)
If (Not IsPostBack) Then
CreateMenuItems()
EndIf
UpdateMenuState()
EndSubProtectedSub CallbackPanel_Callback(ByVal source AsObject, ByVal e As CallbackEventArgsBase)
If e.Parameter.StartsWith("toggle") ThenDim name AsString = e.Parameter.Substring(7)
Dim column As GridViewColumn = Grid.Columns(name)
If column IsNothingThenReturnEndIf
column.Visible = Not column.Visible
EndIfEndSubPrivateSub CreateMenuItems()
For i AsInteger = 0To Grid.Columns.Count - 1Dim column As GridViewColumn = Grid.Columns(i)
Dim dataColumn As GridViewDataColumn = TryCast(column, GridViewDataColumn)
Dim itemText AsStringIf dataColumn IsNotNothingThen
itemText = dataColumn.FieldName
Else
itemText = "#"EndIf
PopupMenu.Items.Add(itemText, dataColumn.FieldName)
Next i
EndSubPrivateSub UpdateMenuState()
For i AsInteger = 0To Grid.Columns.Count - 1Dim item As MenuItem = PopupMenu.Items(i)
Dim column As GridViewDataColumn = TryCast(Grid.Columns(i), GridViewDataColumn)
item.GroupName = column.FieldName
item.Checked = column.Visible
Next i
EndSubEndClass