ASPxClientGridView.HideCustomizationWindow Method
Declaration
HideCustomizationWindow(): void
To show the customization window, use the ASPxClientGridView.ShowCustomizationWindow method.
Example
The example demonstrates how to move all columns from Header to Customization Window (and reverse) at once by clicking the external button. The button's state is synchronized automatically based on the state of the ASPxGridView's Columns.See Also:ASPxGridView - How to trace the process of dragging columns to Customization Window and within a Header
using System;
using DevExpress.Web.ASPxGridView;
public partial class _Default : System.Web.UI.Page {
protected void grid_CustomCallback(object sender, ASPxGridViewCustomCallbackEventArgs e) {
ASPxGridView gridView = (ASPxGridView)sender;
foreach (GridViewColumn column in gridView.Columns) {
if (Convert.ToBoolean(hf["columnsInWindow"])) {
if (column.Visible && column.ShowInCustomizationForm)
column.Visible = false;
} else {
if (!column.Visible && column.ShowInCustomizationForm)
column.Visible = true;
}
}
}
protected void grid_AfterPerformCallback(object sender, ASPxGridViewAfterPerformCallbackEventArgs e) {
if (e.CallbackName == "COLUMNMOVE") {
ASPxGridView gridView = (ASPxGridView)sender;
gridView.JSProperties["cpColumnsInHeader"] = false;
foreach (GridViewColumn column in gridView.Columns) {
if (column.Visible && column.ShowInCustomizationForm) {
gridView.JSProperties["cpColumnsInHeader"] = true;
break;
}
}
}
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Assembly="DevExpress.Web.ASPxEditors.v10.2, Version=10.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"
Namespace="DevExpress.Web.ASPxEditors" TagPrefix="dx" %>
<%@ Register Assembly="DevExpress.Web.ASPxGridView.v10.2, Version=10.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"
Namespace="DevExpress.Web.ASPxGridView" TagPrefix="dx" %>
<%@ Register Assembly="DevExpress.Web.v10.2, Version=10.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"
Namespace="DevExpress.Web.ASPxHiddenField" TagPrefix="dx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<script type="text/javascript">
function OnCustomizationWindowCloseUp(s, e) {
btnMoveColumns.SetEnabled(false);
UpdateBtnToggleCustomWindowText();
}
function OnBtnToggleCustomWindowClick(s, e) {
btnMoveColumns.SetEnabled(!grid.IsCustomizationWindowVisible());
if (grid.IsCustomizationWindowVisible())
grid.HideCustomizationWindow();
else
grid.ShowCustomizationWindow();
UpdateBtnToggleCustomWindowText();
}
function OnBtnMoveColumnsClick(s, e) {
if (!hiddenField.Get('columnsInWindow')) {
hiddenField.Set('columnsInWindow', true);
}
else {
hiddenField.Set('columnsInWindow', false);
}
UpdateBtnMoveColumnsText(hiddenField.Get('columnsInWindow'));
grid.PerformCallback();
}
function UpdateBtnToggleCustomWindowText() {
var text = grid.IsCustomizationWindowVisible() ? 'Hide' : 'Show';
text += ' Customization Window';
btnToggleCustomWindow.SetText(text);
}
function UpdateBtnMoveColumnsText(moveToWindow) {
var text = 'Move all columns to ';
text += moveToWindow ? 'Header' : 'Customization Window';
btnMoveColumns.SetText(text);
}
function OnEndCallBack(s, e) {
if (s.cpColumnsInHeader != undefined) {
UpdateBtnMoveColumnsText(!s.cpColumnsInHeader);
hiddenField.Set('columnsInWindow', !s.cpColumnsInHeader);
delete s.cpColumnsInHeader;
}
}
</script>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table>
<tr>
<td>
<dx:ASPxButton ID="buttonToggleCustomWindow" runat="server" ClientInstanceName="btnToggleCustomWindow"
Text="Show Customization Window" AutoPostBack="false" Width="250px">
<ClientSideEvents Click="OnBtnToggleCustomWindowClick" />
</dx:ASPxButton>
</td>
<td>
<dx:ASPxButton ID="buttonMoveColumns" runat="server" ClientInstanceName="btnMoveColumns"
Text="Move all columns to Customization Window" ClientEnabled="false" AutoPostBack="false">
<ClientSideEvents Click="OnBtnMoveColumnsClick" />
</dx:ASPxButton>
</td>
</tr>
</table>
<br />
<dx:ASPxGridView ID="grid" runat="server" ClientInstanceName="grid" AutoGenerateColumns="False"
DataSourceID="gridDataSource" KeyFieldName="ProductID" OnCustomCallback="grid_CustomCallback"
OnAfterPerformCallback="grid_AfterPerformCallback">
<ClientSideEvents EndCallback="OnEndCallBack" CustomizationWindowCloseUp="OnCustomizationWindowCloseUp" />
<SettingsCustomizationWindow Enabled="True" />
<Columns>
<dx:GridViewDataTextColumn FieldName="ProductID" ReadOnly="True" VisibleIndex="0">
<EditFormSettings Visible="False" />
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="ProductName" VisibleIndex="1">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="SupplierID" VisibleIndex="2">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="CategoryID" VisibleIndex="3">
</dx:GridViewDataTextColumn>
</Columns>
</dx:ASPxGridView>
<asp:AccessDataSource ID="gridDataSource" runat="server" DataFile="~/App_Data/nwind.mdb"
SelectCommand="SELECT [ProductID], [ProductName], [SupplierID], [CategoryID] FROM [Products]">
</asp:AccessDataSource>
</div>
<dx:ASPxHiddenField ID="hf" ClientInstanceName="hiddenField" runat="server">
</dx:ASPxHiddenField>
</form>
</body>
</html>
Imports Microsoft.VisualBasic
Imports System
Imports DevExpress.Web.ASPxGridView
Partial Public Class _Default
Inherits System.Web.UI.Page
Protected Sub grid_CustomCallback(ByVal sender As Object, ByVal e As ASPxGridViewCustomCallbackEventArgs)
Dim gridView As ASPxGridView = CType(sender, ASPxGridView)
For Each column As GridViewColumn In gridView.Columns
If Convert.ToBoolean(hf("columnsInWindow")) Then
If column.Visible AndAlso column.ShowInCustomizationForm Then
column.Visible = False
End If
Else
If (Not column.Visible) AndAlso column.ShowInCustomizationForm Then
column.Visible = True
End If
End If
Next column
End Sub
Protected Sub grid_AfterPerformCallback(ByVal sender As Object, ByVal e As ASPxGridViewAfterPerformCallbackEventArgs)
If e.CallbackName = "COLUMNMOVE" Then
Dim gridView As ASPxGridView = CType(sender, ASPxGridView)
gridView.JSProperties("cpColumnsInHeader") = False
For Each column As GridViewColumn In gridView.Columns
If column.Visible AndAlso column.ShowInCustomizationForm Then
gridView.JSProperties("cpColumnsInHeader") = True
Exit For
End If
Next column
End If
End Sub
End Class
<%@ Page Language="vb" AutoEventWireup="true" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<%@ Register Assembly="DevExpress.Web.ASPxEditors.v10.2, Version=10.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"
Namespace="DevExpress.Web.ASPxEditors" TagPrefix="dx" %>
<%@ Register Assembly="DevExpress.Web.ASPxGridView.v10.2, Version=10.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"
Namespace="DevExpress.Web.ASPxGridView" TagPrefix="dx" %>
<%@ Register Assembly="DevExpress.Web.v10.2, Version=10.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"
Namespace="DevExpress.Web.ASPxHiddenField" TagPrefix="dx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<script type="text/javascript">
function OnCustomizationWindowCloseUp(s, e) {
btnMoveColumns.SetEnabled(false);
UpdateBtnToggleCustomWindowText();
}
function OnBtnToggleCustomWindowClick(s, e) {
btnMoveColumns.SetEnabled(!grid.IsCustomizationWindowVisible());
if (grid.IsCustomizationWindowVisible())
grid.HideCustomizationWindow();
else
grid.ShowCustomizationWindow();
UpdateBtnToggleCustomWindowText();
}
function OnBtnMoveColumnsClick(s, e) {
if (!hiddenField.Get('columnsInWindow')) {
hiddenField.Set('columnsInWindow', true);
}
else {
hiddenField.Set('columnsInWindow', false);
}
UpdateBtnMoveColumnsText(hiddenField.Get('columnsInWindow'));
grid.PerformCallback();
}
function UpdateBtnToggleCustomWindowText() {
var text = grid.IsCustomizationWindowVisible() ? 'Hide' : 'Show';
text += ' Customization Window';
btnToggleCustomWindow.SetText(text);
}
function UpdateBtnMoveColumnsText(moveToWindow) {
var text = 'Move all columns to ';
text += moveToWindow ? 'Header' : 'Customization Window';
btnMoveColumns.SetText(text);
}
function OnEndCallBack(s, e) {
if (s.cpColumnsInHeader != undefined) {
UpdateBtnMoveColumnsText(!s.cpColumnsInHeader);
hiddenField.Set('columnsInWindow', !s.cpColumnsInHeader);
delete s.cpColumnsInHeader;
}
}
</script>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table>
<tr>
<td>
<dx:ASPxButton ID="buttonToggleCustomWindow" runat="server" ClientInstanceName="btnToggleCustomWindow"
Text="Show Customization Window" AutoPostBack="false" Width="250px">
<ClientSideEvents Click="OnBtnToggleCustomWindowClick" />
</dx:ASPxButton>
</td>
<td>
<dx:ASPxButton ID="buttonMoveColumns" runat="server" ClientInstanceName="btnMoveColumns"
Text="Move all columns to Customization Window" ClientEnabled="false" AutoPostBack="false">
<ClientSideEvents Click="OnBtnMoveColumnsClick" />
</dx:ASPxButton>
</td>
</tr>
</table>
<br />
<dx:ASPxGridView ID="grid" runat="server" ClientInstanceName="grid" AutoGenerateColumns="False"
DataSourceID="gridDataSource" KeyFieldName="ProductID" OnCustomCallback="grid_CustomCallback"
OnAfterPerformCallback="grid_AfterPerformCallback">
<ClientSideEvents EndCallback="OnEndCallBack" CustomizationWindowCloseUp="OnCustomizationWindowCloseUp" />
<SettingsCustomizationWindow Enabled="True" />
<Columns>
<dx:GridViewDataTextColumn FieldName="ProductID" ReadOnly="True" VisibleIndex="0">
<EditFormSettings Visible="False" />
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="ProductName" VisibleIndex="1">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="SupplierID" VisibleIndex="2">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="CategoryID" VisibleIndex="3">
</dx:GridViewDataTextColumn>
</Columns>
</dx:ASPxGridView>
<asp:AccessDataSource ID="gridDataSource" runat="server" DataFile="~/App_Data/nwind.mdb"
SelectCommand="SELECT [ProductID], [ProductName], [SupplierID], [CategoryID] FROM [Products]">
</asp:AccessDataSource>
</div>
<dx:ASPxHiddenField ID="hf" ClientInstanceName="hiddenField" runat="server">
</dx:ASPxHiddenField>
</form>
</body>
</html>
See Also