or
<body> <form id="form1" runat="server"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> <Scripts> <%--Needed for JavaScript IntelliSense in VS2010--%> <%--For VS2008 replace RadScriptManager with ScriptManager--%> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" /> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" /> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" /> </Scripts> </telerik:RadScriptManager> <script type="text/javascript"> //Put your JavaScript code here. </script> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadGrid1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Skin="Default"></telerik:RadAjaxLoadingPanel> <telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="True" CellSpacing="0" GridLines="None" Width="800px" AllowFilteringByColumn="true" EnableLinqExpressions="false" AutoGenerateColumns="false" OnNeedDataSource="RadGrid1_NeedDataSource" ShowFooter="True"> <MasterTableView AutoGenerateColumns="false" EditMode="InPlace" AllowFilteringByColumn="True" ShowFooter="True" TableLayout="Auto"> <Columns> <telerik:GridTemplateColumn DataField="Freight" HeaderText="Freight" SortExpression="Freight" AutoPostBackOnFilter="true" CurrentFilterFunction="GreaterThanOrEqualTo" ShowFilterIcon="false"> <ItemTemplate> <asp:LinkButton ID="lbl_freight" runat="server" Text='<%#Eval("Freight")%>' Visible="true"/> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="ShipName" HeaderText="Ship Name" SortExpression="ShipName" AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" ShowFilterIcon="false"> <ItemTemplate> <asp:LinkButton ID="lbl_name" runat="server" Text='<%#Eval("ShipName")%>' Visible="true"/> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="OrderDate" UniqueName="OrderDate" HeaderText="Order Date" SortExpression="OrderDate"> <FilterTemplate> <telerik:RadDatePicker ID="filterOrderDate" runat="server" Width="100%" ClientEvents-OnDateSelected="DateSelected" DbSelectedDate='<%# SetOrderDate(Container) %>'><DateInput ID="DateInput1" runat="server" DateFormat="MM/dd/yyyy" DisplayDateFormat="MM/dd/yyyy"></DateInput> </telerik:RadDatePicker> <telerik:RadScriptBlock ID="RadScriptBlock3" runat="server"> <script type="text/javascript"> function DateSelected(sender, args) { var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>"); var date = FormatSelectedDate(sender); tableView.filter("OrderDate", date, "LessThanOrEqualTo"); } function FormatSelectedDate(picker) { var date = picker.get_selectedDate(); var dateInput = picker.get_dateInput(); var formattedDate = dateInput.get_dateFormatInfo().FormatDate(date, dateInput.get_displayDateFormat()); return formattedDate; } </script> </telerik:RadScriptBlock> </FilterTemplate> <ItemTemplate> <asp:Label ID="lbl_duedate_gv" runat="server" Text='<%#Eval("OrderDate", "{0:MM/dd/yyyy}")%>' Visible="true"/> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> </MasterTableView> </telerik:RadGrid> </form> </body>public partial class RadGridFilterTest : System.Web.UI.Page { protected void RadGrid1_NeedDataSource(object source, GridNeedDataSourceEventArgs e) { LoadData(); } private void LoadData() { RadGrid1.DataSource = GetDataTable("SELECT OrderID, OrderDate, Freight, ShipName, ShipCountry FROM Orders"); } public DataTable GetDataTable(string query) { String ConnString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; SqlConnection conn = new SqlConnection(ConnString); SqlDataAdapter adapter = new SqlDataAdapter(); adapter.SelectCommand = new SqlCommand(query, conn); DataTable myDataTable = new DataTable(); conn.Open(); try { adapter.Fill(myDataTable); } finally { conn.Close(); } return myDataTable; } protected DateTime? SetOrderDate(GridItem item) { if (item.OwnerTableView.GetColumn("OrderDate").CurrentFilterValue == string.Empty) { return new DateTime?(); } else { DateTime DT = new DateTime(); DT = DateTime.ParseExact(item.OwnerTableView.GetColumn("OrderDate").CurrentFilterValue, "MM/dd/yyyy", null); //DT = DateTime.Parse(item.OwnerTableView.GetColumn("OrderDate").CurrentFilterValue); return DT; } } }
mygrid.get_masterTableView().hideColumn(i);
But, when I hide the column, it leaves a blank space where the column was located. Is it possible to have the remaining columns automatically resize and fill the empty space?
If this isn't possible, can I manually resize the remaining columns? I've tried the following script to set the hidden column width to zero, but it doesn't have any affect:
mygrid.get_masterTableView().resizeColumn(i, 0);
Protected Sub Grid_ItemCommand(source As Object, e As GridCommandEventArgs) Handles PreferredMediaEditableGrid.ItemCommand Select Case e.CommandName Case RadGrid.InitInsertCommandName PeterBlum.DES.Globals.Page.Validate() If Not PeterBlum.DES.Globals.Page.IsValid Then ' cancel automatic insert. e.Canceled = True End If End Select End Subvar view = $find('grd').get_masterTableView();
view.set_dataSource([]);
view.dataBind();ShowHeadersWhenNoRecords="true"
NoMasterRecordsText="No data available matching the supplied search criteria."args.get_destinationItem()OnClientDropped