or
/// <summary>/// this loads the saved states of the group headers /// (whether they were collapsed or expanded) you have to pass in the /// grid you want to bind/// </summary>/// <param name="grid">the grid you want to bind</param>public static void LoadGroupsExpandedState(RadGrid grid){ var listCollapsedIndexes = HttpContext.Current.Session[grid.ID] as ArrayList; if (listCollapsedIndexes != null) { foreach (GridItem item in grid.MasterTableView.GetItems(GridItemType.GroupHeader)) { if (listCollapsedIndexes.Contains(item.RowIndex)) { item.Expanded = false; } } }}//LoadGroupsExpandedState/// <summary>/// this function sets a session variable to remember which grouping items have been /// collapsed or expanded/// </summary>/// <param name="grid"></param>/// <param name="curItem"></param>public static void SaveGroupsExpandedState(RadGrid grid, GridItem curItem){ GridItem[] groupItems = grid.MasterTableView.GetItems(GridItemType.GroupHeader); if (groupItems.Length > 0) { var listCollapsedIndexes = new ArrayList(); //if this first one is true, then we need to add it to the list //basically the state that is getting passed in is the old state //so if it's expanded = true, then it was expanded, and it's //getting collapsed if (curItem.Expanded) { listCollapsedIndexes.Add(curItem.RowIndex); }//if curItemExpanded else { //check if it's in the list if (listCollapsedIndexes.Contains(curItem.RowIndex)) { listCollapsedIndexes.Remove(curItem.RowIndex); }//if listCollapse }//else foreach (GridItem item in groupItems) { if (!item.Expanded && item.RowIndex != curItem.RowIndex) { listCollapsedIndexes.Add(item.RowIndex); } } HttpContext.Current.Session[grid.ID] = listCollapsedIndexes; }}//SaveGroupsExpandedStateprotected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e){ //get the grid RadGrid grid = sender as RadGrid; //if this is expand or collapse, save the state if (e.CommandName == RadGrid.ExpandCollapseCommandName) { TelerikHelpers.SaveGroupsExpandedState(grid, e.Item); }}//ItemCommand/// <summary>/// This method adds logic on how to handle a databound (restore the grouping set on screen)/// </summary>///The parameter is not used.///The parameter is not used.protected void RadGrid1_DataBound(object sender, EventArgs e){ TelerikHelpers.LoadGroupsExpandedState(sender as RadGrid);}


protected void Page_Init(object sender, System.EventArgs e) { string filterValue = HorizontalTabFilter(); string verticalFilterValue = VerticalTabFIlter(); DefineGridStructure(); }private void DefineGridStructure() { string searchColumns = gf.GetConfigValue(HttpContext.Current.Session["APPLICATION"].ToString(), "SEARCHCOLUMNS"); List<string> searchColumnList = searchColumns.Split('|').ToList(); RadGrid grid = new RadGrid(); grid.ID = "RadGrid1"; grid.AllowSorting = true; grid.GroupingEnabled = true; grid.ClientSettings.AllowGroupExpandCollapse = true; grid.ClientSettings.AllowDragToGroup = true; grid.ClientSettings.Scrolling.AllowScroll = true; grid.ClientSettings.Scrolling.UseStaticHeaders = true; grid.ClientSettings.Scrolling.SaveScrollPosition = true; grid.ClientSettings.Scrolling.EnableVirtualScrollPaging = true; grid.ClientSettings.Resizing.ResizeGridOnColumnResize = true; grid.ClientSettings.Resizing.AllowColumnResize = true; grid.ClientSettings.Resizing.EnableRealTimeResize = true; grid.ClientSettings.Resizing.ResizeGridOnColumnResize = true; grid.ClientSettings.Resizing .AllowResizeToFit = true; grid.HorizontalAlign = HorizontalAlign.Left; grid.HeaderStyle.HorizontalAlign = HorizontalAlign.Left; grid.ItemStyle.HorizontalAlign = HorizontalAlign.Left; grid.AlternatingItemStyle.HorizontalAlign = HorizontalAlign.Left; grid.EnableViewState = true;if (selectedTab != "" || selectedVerticalTab != "") { grid.DataSource = null; grid.Rebind(); } grid.DataSource = dt = ed.SearcheDOCS(selectedTab, selectedVerticalTab, selectedVerticalTabIndex); colCount = dt.Columns.Count; rowCount = dt.Rows.Count; grid.Width = Unit.Percentage(99); grid.Height = Unit.Percentage(99); grid.PageSize = Convert.ToInt32(gf.GetConfigValue(HttpContext.Current.Session["APPLICATION"].ToString(), "PAGINATION")); if (Convert.ToInt32(gf.GetConfigValue(HttpContext.Current.Session["APPLICATION"].ToString(), "PAGINATIONALLOWED")) == 1) { grid.AllowPaging = true; } else { grid.AllowPaging = false; } grid.PagerStyle.Mode = GridPagerMode.NextPrevAndNumeric; grid.AutoGenerateColumns = false; grid.ShowGroupPanel = true; grid.HeaderStyle.CssClass = "HEADER"; grid.MasterTableView.Width = Unit.Percentage(100); grid.HeaderStyle.HorizontalAlign = HorizontalAlign.Left; grid.MasterTableView.DataKeyNames = new string[] { "DOCNUM" }; GridBoundColumn boundColumn = new GridBoundColumn(); GridImageColumn gi; GridButtonColumn gb; GridHyperLinkColumn hyperlinkColumn; boundColumn = new GridBoundColumn(); gi = new GridImageColumn(); gb = new GridButtonColumn(); hyperlinkColumn = new GridHyperLinkColumn(); grid.MasterTableView.TableLayout = GridTableLayout.Fixed; grid.HeaderStyle.HorizontalAlign = HorizontalAlign.Left; GridTableView tableViewOrders = new GridTableView(grid); grid.MasterTableView.Columns.Add(boundColumn); if (colCount == 10) { boundColumn.DataField = "icon"; boundColumn.HeaderText = "icon"; boundColumn.Visible = false; boundColumn.FilterImageUrl = "icon_icon.gif"; string[] fld0 = { "icon" }; gi = new GridImageColumn(); gi.DataImageUrlFields = fld0; gi.DataImageUrlFormatString = "~/images/{0}"; gi.HeaderText = ""; gi.HeaderStyle.Width = Unit.Pixel(30); gi.ImageHeight = Unit.Pixel(20); gi.ImageWidth = Unit.Pixel(20); grid.MasterTableView.Columns.Add(gi); grid.MasterTableView.GroupsDefaultExpanded = false; GridGroupByExpression expression = new GridGroupByExpression(); GridGroupByField gridGroupByField = new GridGroupByField(); gridGroupByField = new GridGroupByField(); gridGroupByField.FieldName = "AUTHOR"; gridGroupByField.HeaderText = "AUTHOR"; expression.SelectFields.Add(gridGroupByField); gridGroupByField = new GridGroupByField(); gridGroupByField.FieldName = "AUTHOR"; gridGroupByField.HeaderText = "AUTHOR"; expression.GroupByFields.Add(gridGroupByField); boundColumn = new GridBoundColumn(); grid.MasterTableView.Columns.Add(boundColumn); boundColumn.DataField = "application"; boundColumn.HeaderText = searchColumnList[0].ToString(); boundColumn.Visible = false; boundColumn = new GridBoundColumn(); grid.MasterTableView.Columns.Add(boundColumn); boundColumn.DataField = searchColumnList[1].ToString(); //boundColumn.ItemStyle.Width = Unit.Pixel(70); boundColumn.HeaderStyle.Width = Unit.Pixel(70); boundColumn.HeaderText = gf.GetHeadingText(searchColumnList[1].ToString()); string[] fld = { "link" }; hyperlinkColumn.DataNavigateUrlFields = fld; hyperlinkColumn.ItemStyle.CssClass = "hyperlink"; hyperlinkColumn.DataNavigateUrlFormatString = "{0}"; hyperlinkColumn.HeaderText = gf.GetHeadingText(searchColumnList[2].ToString()); hyperlinkColumn.ItemStyle.Width = Unit.Pixel(300); hyperlinkColumn.HeaderStyle.Width = Unit.Pixel(300); hyperlinkColumn.DataTextField = "DOCNAME"; hyperlinkColumn.AllowSorting = true; hyperlinkColumn.ItemStyle.Wrap = false; grid.MasterTableView.Columns.Add(hyperlinkColumn); hyperlinkColumn = new GridHyperLinkColumn(); string[] fld4 = { "ABSTRACTLINK" }; hyperlinkColumn.DataNavigateUrlFields = fld4; hyperlinkColumn.ItemStyle.CssClass = "hyperlink"; hyperlinkColumn.DataNavigateUrlFormatString = "{0}"; hyperlinkColumn.HeaderText = "Comments"; hyperlinkColumn.HeaderStyle.Width = Unit.Pixel(75); hyperlinkColumn.ItemStyle.Width = Unit.Pixel(75); hyperlinkColumn.ItemStyle.HorizontalAlign = HorizontalAlign.Center; hyperlinkColumn.DataTextField = "ABSTRACT"; hyperlinkColumn.AllowSorting = true; hyperlinkColumn.ItemStyle.Wrap = false; grid.MasterTableView.Columns.Add(hyperlinkColumn); hyperlinkColumn = new GridHyperLinkColumn(); string[] fld2 = { "editlink" }; hyperlinkColumn.DataNavigateUrlFields = fld2; if (gf.GetConfigValue(HttpContext.Current.Session["APPLICATION"].ToString(), "ALLOWEDIT") == "0") { hyperlinkColumn.Visible = false; } hyperlinkColumn.DataNavigateUrlFormatString = "{0}"; hyperlinkColumn.HeaderText = "Edit"; hyperlinkColumn.HeaderStyle.Width = Unit.Pixel(45); hyperlinkColumn.ItemStyle.Width = Unit.Pixel(45); hyperlinkColumn.ItemStyle.HorizontalAlign = HorizontalAlign.Left; hyperlinkColumn.DataTextField = "editlink"; hyperlinkColumn.ImageUrl = "~/images/EditProfile2.png"; grid.MasterTableView.Columns.Add(hyperlinkColumn); hyperlinkColumn = new GridHyperLinkColumn(); string[] fld3 = { "versionLink" }; hyperlinkColumn.DataNavigateUrlFields = fld3; if (gf.GetConfigValue(HttpContext.Current.Session["APPLICATION"].ToString(), "ALLOWVERSION") == "0") { hyperlinkColumn.Visible = false; } hyperlinkColumn.DataNavigateUrlFormatString = "{0}"; hyperlinkColumn.ItemStyle.HorizontalAlign = HorizontalAlign.Center; hyperlinkColumn.HeaderStyle.Width = Unit.Pixel(55); hyperlinkColumn.ItemStyle.Width = Unit.Pixel(55); hyperlinkColumn.HeaderText = "Version"; hyperlinkColumn.DataTextField = "versionLink"; hyperlinkColumn.ImageUrl = "~/images/NewVersion2.png"; grid.MasterTableView.Columns.Add(hyperlinkColumn); boundColumn = new GridBoundColumn(); grid.MasterTableView.Columns.Add(boundColumn); boundColumn.DataField = "link"; boundColumn.HeaderText = "Link"; boundColumn.Visible = false; boundColumn = new GridBoundColumn(); grid.MasterTableView.Columns.Add(boundColumn); boundColumn.DataField = "ABSTRACTLINK"; boundColumn.HeaderText = "ABSTRACTLINK"; boundColumn.Visible = false; this.PlaceHolder1.Controls.Add(grid); }if (selectedTab != "" || selectedVerticalTab != ""){ grid.DataSource = null; grid.Rebind();} grid.DataSource = dt = ed.SearcheDOCS(selectedTab, selectedVerticalTab, selectedVerticalTabIndex);
I could really use some help with this.
Any ideas?
<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="False" Skin="Black" OnItemDataBound="RadGrid1_ItemDataBound" OnItemCreated="RadGrid1_ItemCreated" AllowSorting="True" AllowMultiRowSelection="False" OnItemCommand="RadGrid1_ItemCommand" AutoGenerateEditColumn="false" OnDetailTableDataBind="RadGrid1_DetailTableDataBind" OnNeedDataSource="RadGrid1_NeedDataSource" OnInsertCommand="RadGrid1_InsertCommand" OnDataBound="RadGrid1_DataBound" OnPreRender="RadGrid1_PreRender" > <MasterTableView DataKeyNames="TempAccountsId" ShowFooter="true" TableLayout="Fixed" AllowMultiColumnSorting="True" EditMode="InPlace" > <DetailTables> <telerik:GridTableView DataKeyNames="FixedId" CommandItemDisplay="Top" TableLayout="Fixed" Name="Fixed" ShowFooter="true" EditMode="InPlace" AllowAutomaticUpdates="false"> <Columns> <telerik:GridTemplateColumn Visible="false"> <ItemTemplate> <asp:Label ID="lblFixedId" runat="server" Text='<%#Eval("FixedId") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridEditCommandColumn ButtonType="ImageButton" HeaderText="Edit" UniqueName="Edit" ItemStyle-Width="25px" HeaderStyle-HorizontalAlign="Center" EditImageUrl="../Images/edit.gif" ItemStyle-HorizontalAlign="Center"> </telerik:GridEditCommandColumn> <telerik:GridTemplateColumn HeaderText="Delete" UniqueName="Delete" HeaderStyle-HorizontalAlign="Center" ItemStyle-Width="40px" ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <asp:ImageButton runat="server" ID="imgdelete" OnClientClick="return confirm('Are you sure that you want to Delete?');" ImageUrl="../Images/delete.gif" CommandName="Delete" CommandArgument="" /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn UniqueName="Jan" HeaderText="Jan" HeaderStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Right" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="70px"> <ItemTemplate> <asp:Label ID="lblJan" runat="server" Text='<%# string.Format("{0:n}", Convert.ToDecimal(Eval("Jan"))) %>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="txtJanEdit" Width="70px" runat="server" MaxLength="11" Text='<%# string.Format("{0:n}", Convert.ToDecimal(Eval("Jan"))) %>' CssClass="AlgRgh" onkeypress="javascript:return Allownumbersonly(event);" BorderWidth="1px"></asp:TextBox> </EditItemTemplate> <InsertItemTemplate> <asp:TextBox ID="txtJanInsert" runat="server" Width="70px" MaxLength="11" CssClass="AlgRgh" onkeypress="javascript:return Allownumbersonly(event);" BorderWidth="1px"></asp:TextBox> </InsertItemTemplate> <FooterTemplate> <asp:Label ID="lblJanFooter" runat="server"></asp:Label> </FooterTemplate> </telerik:GridTemplateColumn> </Columns> </telerik:GridTableView> </DetailTables> <Columns> <telerik:GridTemplateColumn HeaderText="AccountId" UniqueName="TempAccountsId" Visible="false"> <ItemTemplate> <asp:Label ID="lblTempAccountsId" runat="server" Text='<%#Eval("TempAccountsId") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Account Number" UniqueName="AccountNumber" ItemStyle-Width="120px" HeaderStyle-Width="120px" HeaderStyle-HorizontalAlign="left" ItemStyle-HorizontalAlign="left"> <ItemTemplate> <asp:Label ID="lblAccountNumber" runat="server" Text='<%#Eval("AccountNumber") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Account Name" UniqueName="AccountName" ItemStyle-Width="140px" HeaderStyle-Width="140px" HeaderStyle-HorizontalAlign="left" ItemStyle-HorizontalAlign="left"> <ItemTemplate> <asp:Label ID="lblAccountName" runat="server" Text='<%#Eval("AccountName") %>'></asp:Label> </ItemTemplate> <FooterTemplate> <asp:Label ID="lbltotalFooter" runat="server" Text="Total:"></asp:Label> </FooterTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderStyle-Width="60" UniqueName="Jan" HeaderText="" ItemStyle-HorizontalAlign="Right" HeaderStyle-HorizontalAlign="Right" FooterStyle-HorizontalAlign="Right" Aggregate="Sum" DataField="Jan" FooterAggregateFormatString="{0:n}"> </telerik:GridTemplateColumn> </Columns> </MasterTableView> <ClientSettings AllowKeyboardNavigation="true" EnableRowHoverStyle="true"> </ClientSettings></telerik:RadGrid>protected void RadGrid1_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e) { if (!e.IsFromDetailTable) { //DGeneral gen = new DGeneral(); //RadGrid1.DataSource = gen.GetAccountDetailsbyTabName("Fixed"); Dfixed fix = new Dfixed(); RadGrid1.DataSource = fix.GetFixedAccountsDetails(Convert.ToInt32(Session["Propertyid"].ToString()), Convert.ToInt32(Session["BudgetYear"].ToString())); } }protected void RadGrid1_DetailTableDataBind(object source, Telerik.Web.UI.GridDetailTableDataBindEventArgs e) { Dfixed fix = new Dfixed(); GridDataItem dataItem = (GridDataItem)e.DetailTableView.ParentItem; switch (e.DetailTableView.Name) { case "Fixed": { int AccountID = Convert.ToInt32(dataItem.GetDataKeyValue("TempAccountsId").ToString()); e.DetailTableView.DataSource = fix.GetFixedByAccountId(AccountID, Convert.ToInt32(Session["BudgetYear"].ToString()), Convert.ToInt32(Session["Propertyid"].ToString())); break; } case "OrderDetails": { //string OrderID = dataItem.GetDataKeyValue("OrderID").ToString(); //e.DetailTableView.DataSource = GetDataTable("SELECT * FROM [Order Details] WHERE OrderID = " + OrderID); break; } } } protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e) { string exepUpdate = ""; try { if (e.CommandName.Equals(RadGrid.UpdateCommandName)) { if (e.Item.OwnerTableView.Name == "Fixed") { bool ResultSuccess = false; Dfixed fix = new Dfixed(); GridEditableItem item = e.Item as GridEditableItem; Label lblFixedId = (Label)item.FindControl("lblFixedId"); int GenId = Convert.ToInt32(lblFixedId.Text.Trim().ToString()); TextBox txtDescriptionEdit = (TextBox)item.FindControl("txtDescriptionEdit"); TextBox txtJanEdit = (TextBox)item.FindControl("txtJanEdit"); if (txtJanEdit.Text.Trim().ToString() != string.Empty) { Jan = Convert.ToDouble(txtJanEdit.Text.Trim().ToString()); } total = Jan + Feb + Mar + Apr + May + Jun + July + Aug + Sep + Oct + Nov + Dec; long? Retablesqfeet = fix.GetPropertyRentalsqfeet(Convert.ToInt32(Session["Propertyid"].ToString())); double? genpersqft = total / Retablesqfeet; ResultSuccess = fix.EditFixedDetails(GenId, Jan, Feb, Mar, Apr, May, Jun, July, Aug, Sep, Oct, Nov, Dec, total, genpersqft, txtDescriptionEdit.Text.Trim().ToString()); if (ResultSuccess) { RadGrid1.Rebind(); } else { DisplayMessage("Please Verify the values"); e.Canceled = true; } } } } catch (Exception) { exepUpdate = "Please Verify the values you have changed in editable fields"; } finally { if (exepUpdate != "") { e.Canceled = true; DisplayMessage("Fixed Record cannot be Updated. Reason: " + exepUpdate.ToString()); } } }
