I create this grid all in Css...
But when I hide some columns, add blank Column at last

This is my aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/UI/Doculex.Master" AutoEventWireup="true"
CodeBehind="UserManagement.aspx.cs" Inherits="WebSearch.UI.Admin.UserManagement" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
<script type="text/javascript">
function ShowEditForm(id, rowIndex) {
var grid = $find("<%= UserGrid.ClientID %>");
var rowControl = grid.get_masterTableView().get_dataItems()[rowIndex].get_element();
grid.get_masterTableView().selectItem(rowControl, true);
var oWindow = window.radopen("UserForm.aspx?ID=" + id, "UserListDialog");
oWindow.SetTitle("Editing user");
return false;
}
function ShowInsertForm() {
var oWindow = window.radopen("UserForm.aspx", "UserListDialog");
oWindow.SetTitle("New User - Full Add");
}
function refreshGrid(arg) {
if (!arg) {
$find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("Rebind");
}
else {
$find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("RebindAndNavigate");
}
}
function RowDblClick(sender, eventArgs) {
editedRow = eventArgs.get_itemIndexHierarchical();
$find("<%= UserGrid.ClientID %>").get_masterTableView().editItem(editedRow);
}
</script>
</telerik:RadCodeBlock>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="UserGrid">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="UserGrid" LoadingPanelID="RadAjaxLoadingPanel1" />
</UpdatedControls>
</telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="UserGrid" LoadingPanelID="RadAjaxLoadingPanel1" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
<div class="headerPage">
<asp:Label ID="lblTitle" runat="server"></asp:Label>
</div>
<div class="containerSub">
<telerik:RadGrid ID="UserGrid" runat="server" OnNeedDataSource="UserGrid_NeedDataSource"
AllowPaging="True" AllowSorting="True"
AllowFilteringByColumn="true"
CellSpacing="0" OnItemCommand="UserGrid_ItemCommand"
EnableHeaderContextMenu ="true" EnableHeaderContextFilterMenu="true"
GridLines="None" OnPreRender="UserGrid_PreRender"
OnDeleteCommand="UserGrid_DeleteCommand"
OnUpdateCommand="UserGrid_UpdateCommand" OnInsertCommand="UserGrid_InsertCommand"
PageSize="12" Height="500px" AutoGenerateColumns="False"
OnItemCreated="UserGrid_ItemCreated" OnItemUpdated="UserGrid_ItemUpdated" OnItemDataBound="OnItemDataBoundHandler"
OnItemDeleted="UserGrid_ItemDeleted" OnItemInserted="UserGrid_ItemInserted" EnableLinqExpressions="false"
>
<ItemStyle VerticalAlign="Top" />
<GroupingSettings CaseSensitive="false" />
<MasterTableView DataKeyNames="Id" CommandItemDisplay="Top"
EditMode="InPlace" TableLayout="Auto" >
<Columns>
<telerik:GridTemplateColumn UniqueName="TemplateEditColumn" HeaderStyle-Width="2%"
AllowFiltering="false">
<ItemTemplate>
<asp:ImageButton ID="EditLink" runat="server" ImageUrl="~/UI/Images/pencil.png">
</asp:ImageButton>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridEditCommandColumn HeaderStyle-Width="2%" UniqueName="EditCommandColumn"
ButtonType="ImageButton" EditImageUrl="../Images/grid_edit.png">
</telerik:GridEditCommandColumn>
<telerik:GridButtonColumn UniqueName="btnDelete" ConfirmDialogType="RadWindow" ButtonType="ImageButton"
CommandName="Delete" ConfirmDialogHeight="100px" ConfirmDialogWidth="300px" HeaderStyle-Width="2%" />
<telerik:GridTemplateColumn DataField="Id" UniqueName="Id" Visible="false">
<InsertItemTemplate>
<telerik:RadTextBox ID="RadTextBox1" runat="server" Text='<%# Bind("Id") %>' ReadOnly="true"
Enabled="false" />
</InsertItemTemplate>
<EditItemTemplate>
<telerik:RadTextBox ID="RadTextBox1" runat="server" Text='<%# Eval("Id") %>' ReadOnly="true" />
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="FirstName" DataField="FirstName" >
<EditItemTemplate>
<asp:TextBox id="txtFirstName" Width="70px" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "FirstName") %>'></asp:TextBox>
<asp:RequiredFieldValidator id="RFFirstName" runat="server" ErrorMessage="*" CssClass="validator"
ControlToValidate= "txtFirstName" Display="Dynamic" ></asp:RequiredFieldValidator>
</EditItemTemplate>
<ItemTemplate>
<asp:Label id="lblFirstName" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "FirstName") %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="MiddleName" DataField="MiddleName" HeaderStyle-Width="5%">
<EditItemTemplate>
<asp:TextBox id="txtMiddleName" Width="70px" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "MiddleName") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label id="lblMiddleName" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "MiddleName") %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="LastName" HeaderStyle-Width="9%" DataField="LastName">
<ItemStyle Width="9%" />
<EditItemTemplate>
<asp:TextBox id="txtLastName" runat="server" Width="80px" Text='<%# DataBinder.Eval(Container.DataItem, "LastName") %>'></asp:TextBox>
<asp:RequiredFieldValidator id="rfLastName" runat="server" ErrorMessage="*" CssClass="validator"
ControlToValidate= "txtLastName" ></asp:RequiredFieldValidator>
</EditItemTemplate>
<ItemTemplate>
<asp:Label id="lblLastName" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "LastName") %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="Email" HeaderStyle-Width="12%" DataField="Email">
<EditItemTemplate>
<asp:TextBox id="txtEmail" Width="100px" CausesValidation="true" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Email") %>'></asp:TextBox>
<asp:RequiredFieldValidator id="rfEmail" runat="server" ErrorMessage="*" CssClass="validator"
ControlToValidate= "txtEmail" ></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="revEmail" ControlToValidate="txtEmail"
ValidationExpression="^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$" CssClass="validator"
runat="server" Display="Dynamic"></asp:RegularExpressionValidator>
<asp:CustomValidator ID="cvEmail" ControlToValidate="txtEmail" CssClass="validator"
runat="server" OnServerValidate="cvEmail_ServerValidate" Display="Dynamic"></asp:CustomValidator>
</EditItemTemplate>
<ItemTemplate>
<asp:Label id="lblEmail" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Email") %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="LoginId" HeaderStyle-Width="8%" DataField="LoginId">
<EditItemTemplate>
<asp:TextBox id="txtLoginId" CausesValidation="true" Width="70px" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "LoginId") %>'></asp:TextBox>
<asp:RequiredFieldValidator id="rfLoginId" runat="server" ErrorMessage="*" CssClass="validator"
ControlToValidate= "txtLoginId" ></asp:RequiredFieldValidator>
<asp:CustomValidator ID="cvLoginId" runat="server" ControlToValidate="txtLoginId"
CssClass="validator" ValidateEmptyText="True" Display="Dynamic" OnServerValidate="cvLoginId_ServerValidate"></asp:CustomValidator>
</EditItemTemplate>
<ItemTemplate>
<asp:Label id="lblLoginId" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "LoginId") %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="Phone" DataField="Phone" HeaderStyle-Width="5%">
<EditItemTemplate>
<telerik:RadMaskedTextBox ID="txtPhone" runat="server" MaxLength="11" CssClass="TextBoxPopUp"
Text='<%# DataBinder.Eval(Container.DataItem, "Phone") %>' Mask="(###) ###-####-####" DisplayMask="(###) ###-####-####">
</telerik:RadMaskedTextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label id="lblPhone" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Phone") %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="CellPhone" DataField="CellPhone" HeaderStyle-Width="5%">
<EditItemTemplate>
<telerik:RadMaskedTextBox ID="txtCellPhone" runat="server" MaxLength="11" CssClass="TextBoxPopUp"
Text='<%# DataBinder.Eval(Container.DataItem, "CellPhone") %>' Mask="(###) ###-####-####" DisplayMask="(###) ###-####-####">
</telerik:RadMaskedTextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label id="lblCellPhone" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "CellPhone") %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="Address" DataField="Address" HeaderStyle-Width="5%">
<EditItemTemplate>
<asp:TextBox id="txtAddress" Width="100px" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Address") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label id="lblAddress" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Address") %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="ExternalId" DataField="ExternalId" HeaderStyle-Width="5%">
<EditItemTemplate>
<asp:TextBox id="txtExternalId" Width="100px" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "ExternalId") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label id="lblExternalId" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "ExternalId") %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="SecurityLevel" SortExpression="SecurityLevel" HeaderStyle-Width="5%">
<FooterStyle VerticalAlign="Middle" HorizontalAlign="Center" />
<ItemTemplate>
<asp:Label id="lblSecurity" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "SecurityName") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<telerik:RadComboBox runat="server" ID="cbSecurity" EnableLoadOnDemand="True" DataTextField="Name"
DataValueField="Id" AutoPostBack="true"
HighlightTemplatedItems="true" Width="120px"
>
</telerik:RadComboBox>
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="IsSuper" HeaderStyle-Width="4%" DataField="IsSuper">
<EditItemTemplate>
<asp:CheckBox id="chkIsSuper" runat="server" Checked='<%# IsSuperUser(DataBinder.Eval(Container.DataItem, "Id").ToString()) %>' />
</EditItemTemplate>
<ItemTemplate>
<asp:CheckBox id="lblIsSuper" runat="server" Enabled="false" Checked='<%#Convert.ToBoolean(Eval("IsSuper"))%>' />
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
<CommandItemTemplate>
<div style="width: 100%">
<div style="width: 10%; margin-left: 12px; float: left">
<asp:LinkButton ID="LinkButton2" runat="server" CommandName="InitInsert">
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/UI/Images/add.png" />
<asp:Label ID="lblQuickAdd" runat="server" /></asp:LinkButton> </div><div style="width: 10%; float: left">
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="fullInsert">
<%--<a href="#" onclick="return ShowInsertForm();">--%>
<asp:ImageButton ID="imgAddFull" runat="server" ImageUrl="~/UI/Images/add.png" />
<asp:Label ID="lblFullAdd" runat="server" />
<%-- </a>--%>
</asp:LinkButton>
</div>
</div>
</CommandItemTemplate>
</MasterTableView>
<ClientSettings ActiveRowIndex="true" AllowColumnsReorder="true" >
<ClientEvents OnColumnHidden="ColumnHiding" OnRowDblClick="RowDblClick" />
<Resizing
AllowColumnResize="true"></Resizing>
<Scrolling AllowScroll="true" SaveScrollPosition="true" ScrollHeight="250" />
</ClientSettings>
<PagerStyle Mode="NumericPages" />
</telerik:RadGrid>
<telerik:RadWindowManager ID="RadWindowManager1" runat="server" EnableShadow="true">
<Windows>
<telerik:RadWindow ID="UserListDialog" runat="server" Height="600px" Width="900px"
Left="15%" ReloadOnShow="true" ShowContentDuringLoad="false" Modal="true" VisibleStatusbar="false"
Behaviors="Close" />
</Windows>
</telerik:RadWindowManager>
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Height="100%"
Width="100%" />
</div>
</asp:Content>