This demo shows the resizing capabilities of Telerik RadGrid. The product fully supports Row- and Column-resizing with an option for real-time resizing on the client. You merely need to set the respective properties from the control's property grid or in the code-behind: ClientSettings -> Resizing -> AllowRowResize = true ClientSettings -> Resizing -> AllowColumnResize = true ClientSettings -> Resizing -> EnableRealTimeResize = true
Developers can further control whether the whole grid will be resized on column resizing, or whether the rest of the columns will be adjusted to preserve the overall width of the grid: ClientSettings -> Resizing -> ResizeGridOnColumnResize = true/false You can also set whether the cell content will be clipped on column resizing: ClientSettings -> Resizing -> ClipCellContentOnResize = true/false
<%@ Page Language="c#" Inherits="Telerik.GridExamplesCSharp.Client.Resizing.DefaultCS" CodeFile="DefaultCS.aspx.cs" %><%@ Register TagPrefix="telerik" Namespace="Telerik.QuickStart" %><%@ Register TagPrefix="telerik" TagName="Header" Src="~/Common/Header.ascx" %><%@ Register TagPrefix="telerik" TagName="HeadTag" Src="~/Common/HeadTag.ascx" %><%@ Register TagPrefix="telerik" TagName="Footer" Src="~/Common/Footer.ascx" %><%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <telerik:HeadTag runat="server" ID="Headtag2"></telerik:HeadTag> <style type="text/css"> .RadGrid { position: relative; } .qsfWrap > .qsfGrid { width: auto; min-width: 100%; } .qsfWrap * > .qsfInnerArea { width: auto; min-width: 748px; } </style> <telerik:RadCodeBlock runat="server"> <script type="text/javascript"> <!-- function ReorderOrSwapFirstAndLastColumn() { var ddlFirstColumnList = $get("ddlFirstColumnList"); var ddlLastColumnList = $get("ddlLastColumnList"); var tableView = $find("<%=RadGrid1.MasterTableView.ClientID %>"); var firstColumnName = tableView.getColumnByUniqueName(ddlFirstColumnList.options[ddlFirstColumnList.selectedIndex].value).get_uniqueName(); var lastColumnName = tableView.getColumnByUniqueName(ddlLastColumnList.options[ddlLastColumnList.selectedIndex].value).get_uniqueName(); if (document.getElementById("RadioButtonList1_1").checked) { tableView.reorderColumns(lastColumnName, firstColumnName); } else { tableView.swapColumns(lastColumnName, firstColumnName); } } function onGridCreated() { LoadColumnsLists(); } function LoadColumnsLists() { var ddlFirstColumnList = $get("ddlFirstColumnList"); var ddlLastColumnList = $get("ddlLastColumnList"); ddlFirstColumnList.options.length = 0; ddlLastColumnList.options.length = 0; var tableView = $find("<%=RadGrid1.MasterTableView.ClientID %>"); if (ddlFirstColumnList && tableView && ddlLastColumnList) { for (var i = 1; i < tableView.get_columns().length; i++) { if (tableView.get_columns()[i].get_uniqueName() != "") { ddlFirstColumnList.options[ddlFirstColumnList.options.length] = new Option(tableView.get_columns()[i].get_uniqueName(), tableView.get_columns()[i].get_uniqueName()); ddlLastColumnList.options[ddlLastColumnList.options.length] = new Option(tableView.get_columns()[i].get_uniqueName(), tableView.get_columns()[i].get_uniqueName()); } } ddlLastColumnList.selectedIndex = ddlLastColumnList.options.length - 1; ddlFirstColumnList.selectedIndex = 0; } } --> </script> </telerik:RadCodeBlock> <style type="text/css"> .GridHeader_Vista, .GridRow_Vista td, .GridAltRow_Vista td { overflow: hidden; } </style></head><body class="BODY"> <form runat="server" id="mainForm" method="post"> <telerik:Header runat="server" ID="Header1" NavigationLanguage="CS"></telerik:Header> <telerik:RadScriptManager ID="RadScriptManager" runat="server"> </telerik:RadScriptManager> <!-- content start --> <telerik:ConfiguratorPanel ID="ConfiguratorPanel" runat="server" Expanded="true"> <div class="title"> Working with RadGrid Resizing/Swapping/Reordering features</div> <div> <h4 style="font-size: 12px"> Choose RadGrid options:</h4> <table style="height: 170px" title="Options"> <tr> <td> <asp:CheckBox ID="CheckBox1" AutoPostBack="True" OnCheckedChanged="CheckedChanged" runat="server" Text="Allow column resizing" /> <br /> <asp:CheckBox ID="CheckBox2" AutoPostBack="True" OnCheckedChanged="CheckedChanged" runat="server" Text="Allow row resizing" /> </td> <td> <asp:CheckBox ID="CheckBox6" AutoPostBack="True" runat="server" Text="Allow column reordering" OnCheckedChanged="CheckedChanged" /> <br /> <asp:CheckBox ID="CheckBox7" AutoPostBack="True" runat="server" Text="Reorder columns on the client-side" OnCheckedChanged="CheckedChanged" /> </td> </tr> <tr> <td> <asp:CheckBox ID="CheckBox3" AutoPostBack="True" OnCheckedChanged="CheckedChanged" runat="server" Text="Enable real-time resizing" /> <br /> <asp:CheckBox ID="CheckBox4" AutoPostBack="True" OnCheckedChanged="CheckedChanged" runat="server" Text="Resize grid on column resizing" /> <br /> <asp:CheckBox ID="CheckBox5" AutoPostBack="True" OnCheckedChanged="CheckedChanged" runat="server" Text="Clip cell content on resizing" /> <br /> <asp:CheckBox ID="CheckBox8" AutoPostBack="True" OnCheckedChanged="CheckedChanged" runat="server" Text="No wrap for cell content" /> <br /> <asp:CheckBox ID="CheckBox9" AutoPostBack="True" OnCheckedChanged="CheckedChanged" runat="server" Text="Allow resize to fit" /> <img alt="new" src="~/Common/Img/new.gif" runat="server" style="background-color: #002E3D; padding: 2px 3px" /> </td> <td> <asp:Label ID="Label1" runat="server" Text="Columns reorder method:"></asp:Label><br /> <asp:RadioButtonList ID="RadioButtonList1" AutoPostBack="True" runat="server" OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged" RepeatLayout="Flow"> <asp:ListItem Selected="True" Value="Swap">Swap</asp:ListItem> <asp:ListItem Value="Reorder">Reorder (Insert)</asp:ListItem> </asp:RadioButtonList> </td> </tr> <tr> <td> <br /> Click PostBack to see the state of the grid is preserved.<br /> <asp:Button Text="PostBack" runat="server" ID="Button1" CssClass="button" Style="margin: 7px 0 0"> </asp:Button> </td> <td valign="top"> </td> </tr> </table> </div> <br /> <select id="ddlFirstColumnList"> <option value=""></option> </select> <select id="ddlLastColumnList"> <option value=""></option> </select> <asp:Button ID="Button2" CssClass="qsfButtonBigger" Text="Reorder or swap columns" OnClientClick="ReorderOrSwapFirstAndLastColumn(); return false;" runat="server" /><br /> Choose two columns to be reordered or swap. </telerik:ConfiguratorPanel> <br /> <br /> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadGrid1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="CheckBox1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="CheckBox2"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="CheckBox3"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="CheckBox4"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="CheckBox5"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="CheckBox6"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="CheckBox7"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="CheckBox8"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="CheckBox9"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="RadioButtonList1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> <telerik:AjaxUpdatedControl ControlID="RadioButtonList1" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" /> <table style="width: 750px"> <tr> <td> <telerik:RadGrid ID="RadGrid1" DataSourceID="SqlDataSource1" runat="server" AllowPaging="True" GridLines="None" PageSize="10"> <MasterTableView TableLayout="Fixed" /> <ClientSettings AllowColumnsReorder="true" ReorderColumnsOnClient="true"> <Resizing AllowRowResize="True" EnableRealTimeResize="True" ResizeGridOnColumnResize="True" AllowColumnResize="True"></Resizing> <ClientEvents OnGridCreated="onGridCreated" /> </ClientSettings> <HeaderStyle Width="100px" /> <PagerStyle Mode="NextPrevAndNumeric" /> </telerik:RadGrid> </td> </tr> </table> <asp:SqlDataSource ID="SqlDataSource1" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" ProviderName="System.Data.SqlClient" SelectCommand="SELECT TOP 25 CustomerID, CompanyName, ContactName, ContactTitle, Address, PostalCode FROM Customers" runat="server"></asp:SqlDataSource> <!-- content end --> <telerik:Footer runat="server" ID="Footer1"></telerik:Footer> </form></body></html>
Take your time to truly experience the power of RadControls for ASP.NET AJAX with a free 60-day trial backed up by Telerik’s unlimited dedicated support.
Download your RadControls for ASP.NET AJAX trial and jumpstart your development with the available Getting Started resources.
If you have any questions, do not hesitate to contact us at sales@telerik.com.