Hello,
I have a problem with all my customizations in the RadGrid1_ItemDataBound to the Total and Subtotal rows as well as to LinkButton.
The custom data in the columns in the rows (like custom calculations) are erased/removed when I for instance collapse a group or click on the LinkButton.
So any time there is a postback in the grid the customizations are erased....
Should I also initialize the customizations on some other event or am I missing something?
Please advise.
Thanks,
-Arek
the code below:
I have a problem with all my customizations in the RadGrid1_ItemDataBound to the Total and Subtotal rows as well as to LinkButton.
The custom data in the columns in the rows (like custom calculations) are erased/removed when I for instance collapse a group or click on the LinkButton.
So any time there is a postback in the grid the customizations are erased....
Should I also initialize the customizations on some other event or am I missing something?
Please advise.
Thanks,
-Arek
the code below:
<telerik:RadScriptManager ID="RadScriptManager1" runat="server"> </telerik:RadScriptManager> <div> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <telerik:RadGrid ID="RadGrid1" runat="server" CellSpacing="0" DataSourceID="SqlDataSource1" GridLines="None" EnableAJAX="true" EnableAJAXLoadingTemplate="true" LoadingTemplateTransparency="25" ShowGroupPanel="True" AllowPaging="True" AllowSorting="True" Skin="Vista" OnItemDataBound="RadGrid1_ItemDataBound" ShowFooter="true" OnItemCreated="RadGrid1_ItemCreated" > <ClientSettings AllowDragToGroup="True"> </ClientSettings> <MasterTableView AutoGenerateColumns="False" DataSourceID="SqlDataSource1" ShowGroupFooter="true" AllowMultiColumnSorting="true"> <RowIndicatorColumn FilterControlAltText="Filter RowIndicator column"> <HeaderStyle Width="20px"></HeaderStyle> </RowIndicatorColumn> <ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column"> <HeaderStyle Width="20px"></HeaderStyle> </ExpandCollapseColumn> <Columns> <telerik:GridBoundColumn DataField="Market" FilterControlAltText="Filter Market column" HeaderText="Market" SortExpression="Market" UniqueName="Market"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Station" FilterControlAltText="Filter Station column" HeaderText="Station" SortExpression="Station" UniqueName="Station"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Spots" DataType="System.Int32" FilterControlAltText="Filter Spots column" HeaderText="Spots" ReadOnly="True" SortExpression="Spots" UniqueName="Spots" Aggregate="Sum" FooterText=" "> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Spend" DataType="System.Decimal" FilterControlAltText="Filter Spend column" HeaderText="Spend" SortExpression="Spend" UniqueName="Spend" Aggregate="Sum" FooterText=" " DataFormatString="{0:F2}"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="CALL" DataType="System.Int32" FilterControlAltText="Filter CALL column" HeaderText="CALL" ReadOnly="True" SortExpression="CALL" UniqueName="CALL" Aggregate="Sum" FooterText=" "> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="ORDR" DataType="System.Int32" FilterControlAltText="Filter ORDR column" HeaderText="ORDR" ReadOnly="True" SortExpression="ORDR" UniqueName="ORDR" Aggregate="Sum" FooterText=" "> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="CPC" DataType="System.Decimal" FilterControlAltText="Filter CPC column" HeaderText="CPC" ReadOnly="True" SortExpression="CPC" UniqueName="CPC" DataFormatString="{0:F2}"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="CPM" DataType="System.Decimal" FilterControlAltText="Filter CPM column" HeaderText="CPM" ReadOnly="True" SortExpression="CPM" UniqueName="CPM" DataFormatString="{0:F2}"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="CPO" DataType="System.Decimal" FilterControlAltText="Filter CPO column" HeaderText="CPO" ReadOnly="True" SortExpression="CPO" UniqueName="CPO" DataFormatString="{0:F2}"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="CTO" DataType="System.Double" FilterControlAltText="Filter CTO column" HeaderText="CTO" ReadOnly="True" SortExpression="CTO" UniqueName="CTO" DataFormatString="{0:F2}"> </telerik:GridBoundColumn> </Columns> <EditFormSettings> <EditColumn FilterControlAltText="Filter EditCommandColumn column"> </EditColumn> </EditFormSettings> <GroupByExpressions> <telerik:GridGroupByExpression> <GroupByFields> <telerik:GridGroupByField FieldName="Market" /> </GroupByFields> <SelectFields> <telerik:GridGroupByField FieldName="Market" HeaderText="Market" /> </SelectFields> </telerik:GridGroupByExpression> <telerik:GridGroupByExpression> <SelectFields> <telerik:GridGroupByField FieldName="Station" FieldAlias="Station" FormatString="" HeaderText="Station"></telerik:GridGroupByField> </SelectFields> <GroupByFields> <telerik:GridGroupByField FieldName="Station" FieldAlias="Station" FormatString="" HeaderText=""></telerik:GridGroupByField> </GroupByFields> </telerik:GridGroupByExpression> </GroupByExpressions> </MasterTableView> <FilterMenu EnableImageSprites="False"> </FilterMenu> <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default"> </HeaderContextMenu> </telerik:RadGrid> </ContentTemplate> </asp:UpdatePanel>protected void RadGrid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e) { try { if (e.Item is GridFooterItem) { GridFooterItem footer = (GridFooterItem)e.Item; footer["Market"].Controls.Add(new LiteralControl("<span>Grand Total :</span>")); footer["Market"].Style.Add("Text-align", "right"); float cpc = Convert.ToSingle(footer["Spend"].Text)/Convert.ToSingle(footer["CALL"].Text); string txtCpc = string.Format("<span>{0:F2}</span>", cpc); footer["CPC"].Controls.Add(new LiteralControl(txtCpc)); float cpm = Convert.ToSingle(footer["CALL"].Text) / (Convert.ToSingle(footer["Spend"].Text) / 1000.00F); string txtCpm = string.Format("<span>{0:F2}</span>", cpm); footer["CPM"].Controls.Add(new LiteralControl(txtCpm)); float cpo = Convert.ToSingle(footer["Spend"].Text) / Convert.ToSingle(footer["ORDR"].Text); string txtCpo = string.Format("<span>{0:F2}</span>", cpo); footer["CPO"].Controls.Add(new LiteralControl(txtCpo)); float cto = Convert.ToSingle(footer["ORDR"].Text) / Convert.ToSingle(footer["CALL"].Text); string txtCto = string.Format("<span>{0:F2}</span>", cto); footer["CTO"].Controls.Add(new LiteralControl(txtCto)); } else if (e.Item is GridGroupFooterItem) { GridGroupFooterItem groupFooter = (GridGroupFooterItem)e.Item; groupFooter["Market"].Controls.Add(new LiteralControl("<span>SubTotal :</span>")); groupFooter["Market"].Style.Add("Text-align", "right"); float cpc = Convert.ToSingle(groupFooter["Spend"].Text) / Convert.ToSingle(groupFooter["CALL"].Text); string txtCpc = string.Format("<span>{0:F2}</span>", cpc); groupFooter["CPC"].Controls.Add(new LiteralControl(txtCpc)); float cpm = Convert.ToSingle(groupFooter["CALL"].Text) / (Convert.ToSingle(groupFooter["Spend"].Text) / 1000.00F); string txtCpm = string.Format("<span>{0:F2}</span>", cpm); groupFooter["CPM"].Controls.Add(new LiteralControl(txtCpm)); float cpo = Convert.ToSingle(groupFooter["Spend"].Text) / Convert.ToSingle(groupFooter["ORDR"].Text); string txtCpo = string.Format("<span>{0:F2}</span>", cpo); groupFooter["CPO"].Controls.Add(new LiteralControl(txtCpo)); float cto = Convert.ToSingle(groupFooter["ORDR"].Text) / Convert.ToSingle(groupFooter["CALL"].Text); string txtCto = string.Format("<span>{0:F2}</span>", cto); groupFooter["CTO"].Controls.Add(new LiteralControl(txtCto)); } //else if (e.Item is GridDataItem2) //{ // GridDataItem item = (GridDataItem)e.Item; // HyperLink hyplink = new HyperLink(); // hyplink.ID = "HyperLink1"; // hyplink.Text = item["Station"].Text; // hyplink.NavigateUrl = "#"; // item["Station"].Controls.Add(hyplink); //} else if (e.Item is GridDataItem) { GridDataItem item = (GridDataItem)e.Item; LinkButton lnkButton = new LinkButton(); lnkButton.ID = "LinkButton1"; lnkButton.Text = item["Station"].Text; lnkButton.Click += lnkButton_Click; item["Station"].Controls.Add(lnkButton); } } catch (Exception ex) { Page.ClientScript.RegisterStartupScript(base.GetType(), "Alert", ex.Message.ToString()); } }