Hi,
I have a PivotGrid table with huge value. How do I customize the appearance of the value in the table using my sample javascript below?
function FormatNumber(value) { if (value === 0) { return 0 } if (value <= 999) { return value } if (value >= 1000 && value <= 999999) { return parseFloat(value / 1000).toFixed(1) + 'K' } if (value >= 1000000 && value <= 999999999) { return parseFloat(value / 1000000).toFixed(1) + 'M' } if (value >= 1000000000 && value <= 999999999999) { return parseFloat(value / 1000000000).toFixed(1) + 'B' } if (value >= 1000000000000 && value <= 999999999999999) { return parseFloat(value / 1000000000000).toFixed(1) + 'T' } if (value >= 1000000000000000 && value <= 999999999999999999) { return parseFloat(value / 1000000000000000).toFixed(1) + 'Q } return value}
Thanks.

I've got a grid that I need to sort by a column that refers to a related entity. I need to figure out the syntax to do this.
Details:
<telerik:GridTemplateColumn UniqueName="AGNUM" DataField="AGNUM" HeaderText="Agent" AllowSorting="True" SortExpression="PAgents.AGNAME"> <EditItemTemplate> <telerik:RadComboBox ID="rcb_Agent_Edit" DataSourceID="Entity_Agents_Active" AppendDataBoundItems="true" DropDownWidth="400px" SelectedValue='<%# Bind("AGNUM") %>' runat="server" DataValueField="AGNUM" DataTextField="AGNAME"> <Items> <telerik:RadComboBoxItem Text="" Value="99999" /> </Items> </telerik:RadComboBox> </EditItemTemplate> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem, "PAgents.AGNAME") %> <-- Same string works fine here, though. </ItemTemplate></telerik:GridTemplateColumn>The above throws an argument exception: Input string was not in a correct format.Couldn't store in PAgents.AGNAME Column. Expected type is Int32.
The grid is bound to an entity data source (defined below)
The two relevant data sources:
<asp:EntityDataSource ID="Entity_AgLicensing" runat="server" ConnectionString="name=dev_SuretyDBEntities" ContextTypeName="BSGSuretyRewrite.Entities.DataAccess.LinqToEntities.dev_SuretyDBEntities" DefaultContainerName="dev_SuretyDBEntities" EnableFlattening="false" EntitySetName="AgLicense" Include="AgLicenseStatus,PAgents" EnableDelete="true" EnableInsert="true" EnableUpdate="true" Where="it.[PNUMBER]=@PNUMBER && it.[AGNUM] IS NOT NULL" OnInserting="Entity_AgLicensing_Inserting" OnDeleted="Entity_AgLicensing_Deleted" OnUpdating="Entity_AgLicensing_Updating"> <WhereParameters> <asp:ControlParameter ControlID="hfPnumber" Name="PNUMBER" PropertyName="Value" DbType="Int32" /> </WhereParameters></asp:EntityDataSource><asp:EntityDataSource ID="Entity_AgLicensing_Agency" runat="server" ConnectionString="name=dev_SuretyDBEntities" ContextTypeName="BSGSuretyRewrite.Entities.DataAccess.LinqToEntities.dev_SuretyDBEntities" DefaultContainerName="dev_SuretyDBEntities" EnableFlattening="false" EntitySetName="AgLicense" Include="AgLicenseStatus" EnableDelete="true" EnableInsert="true" EnableUpdate="true" Where="it.[PNUMBER]=@PNUMBER && it.[AGNUM] IS NULL" OnInserting="Entity_AgLicensing_Agency_Inserting" OnDeleted="Entity_AgLicensing_Agency_Deleted"> <WhereParameters> <asp:ControlParameter ControlID="hfPnumber" Name="PNUMBER" PropertyName="Value" DbType="Int32" /> </WhereParameters></asp:EntityDataSource>

I am having a problem with grouping on a grid. I have two select fields, one which shows the current group, and one which shows a count of rows.
The header text works fine on the first group, but all subsequent groups, it looks like it is just showing a template of the text.
The attached image shows the way it is coming out. I collapsed the first group so all the group headers could be seen together.
You can see that the first group shows up fine showing "Pass: ; Fields: 73". This is correct, as that first group, all of the rows have the value for the PASS field empty.
But then the subsequent two groups are wrong. Taking the second group as example, it SHOULD show "Pass: 6; Fields 1", but instead it shows " Fields: {0}".
The below is the code for the groupbyexpressions for the grid in question.
01.<groupbyexpressions>02. <telerik:gridgroupbyexpression>03. <groupbyfields>04. <telerik:gridgroupbyfield fieldname="PASSNUMBER" />05. </groupbyfields>06. <selectfields>07. <telerik:gridgroupbyfield fieldname="PASSNUMBER" headertext="Pass" fieldalias="PASS" />08. <telerik:gridgroupbyfield fieldname="ROWID" headertext="Fields" fieldalias="FIELDS" aggregate="Count" />09. </selectfields>10. </telerik:gridgroupbyexpression>11.</groupbyexpressions>
| <telerik:GridTemplateColumn UniqueName="ddHeader" HeaderText="Header"> |
| <EditItemTemplate> |
| <asp:DropDownList ID="HeaderDropDown" runat="server" /> |
| </EditItemTemplate> |
| </telerik:GridTemplateColumn> |
| private void Grid1_ItemDataBound(object sender, GridItemEventArgs e) |
| { |
| if (e.Item is GridEditableItem) |
| { |
| GridEditableItem item = e.Item as GridEditableItem; |
| Dictionary<string, string> dict = new Dictionary<string, string>(); |
| dict = ReadHeader(); |
| DropDownList list =item.FindControl("HeaderDropDown") as DropDownList; |
| list.DataSource = dict; |
| list.DataBind(); |
| } |
| } |
I've seen a ton of questions on this, however no simple explanations why this is occurring or what the solution to the problem is.
We've got a Batch Edit Update Grid that I originally had a RadComboBox in that was working fine until I found that keyboard navigation was screwing up the keyboard flow and saw that it was recommended to switch to a RadDropDown control, so I did, which is in a GridTemplateColumn similar to this:
<telerik:RadGrid ID="RadGrdActionInputs" runat="server" Width="900px" OnNeedDataSource="RadGrdActionGroupInputs_NeedDataSource"AutoGenerateColumns="False" RenderMode="Lightweight" AllowSorting="True"OnItemDataBound="RadGrdActionInputs_ItemDataBound"oninsertcommand="RadGrdActionInputs_InsertCommand"onupdatecommand="RadGrdActionInputs_UpdateCommand"ondeletecommand="RadGrdActionInputs_DeleteCommand"oneditcommand="RadGrdActionInputs_EditCommand"AutoGenerateEditColumn="True" ><GroupingSettings CollapseAllTooltip="Collapse all groups"></GroupingSettings><MasterTableView CommandItemDisplay="TopAndBottom" DataKeyNames="ID" EditMode="Batch"><BatchEditingSettings EditType="Row" /><CommandItemSettings ShowCancelChangesButton="true" ShowRefreshButton="false" />....<telerik:GridTemplateColumn HeaderText="Data Point" DataField="DataPointID" HeaderStyle-Width="500px"> <ItemTemplate> <telerik:RadTextBox ID="RadTextBox1" runat="server" Width="150px"></telerik:RadTextBox> </ItemTemplate> <EditItemTemplate> <telerik:RadDropDownList RenderMode="Lightweight" ID="ddDataPointList" runat="server" Width="300px"> </telerik:RadDropDownList> </EditItemTemplate> <HeaderStyle Width="500px"></HeaderStyle></telerik:GridTemplateColumn>
In the examples and the problems/posts that I have seen, they all recommend checking the e.item type in the ItemDataBound event. If the e.item is a GridDataItem then bind a label, else if it's a GridEditableItem bind the dropdown, IE:
protected void RadGrdActionInputs_ItemDataBound(object sender, GridItemEventArgs e){ //get combobox data for drop down. DataPointsModel dataPointsModel = ConfigurationController.GetAllDataPoints(); try { if (e.Item is GridDataItem) { GridDataItem item = (GridDataItem)e.Item; RadLabel lblActionGroupType = item.FindControl("lblDataPoint") as RadLabel; //get value for ActionGroupTypeID string val = DataBinder.Eval(item.DataItem, "DataPointID").ToString(); } if (e.Item is GridEditableItem && e.Item.IsInEditMode) { GridEditableItem item = e.Item as GridEditableItem; RadDropDownList rddl = item.FindControl("ddDataPointList2") as RadDropDownList; BindRadDropDownDataList("I", rddl, "Name", "ID"); } } catch {}}
Problem is, this code never gets called:
if (e.Item is GridEditableItem && e.Item.IsInEditMode) { GridEditableItem item = e.Item as GridEditableItem; RadDropDownList rddl = item.FindControl("ddDataPointList2") as RadDropDownList; BindRadDropDownDataList("I", rddl, "Name", "ID"); }
I'm pulling my hair out on this one..
Given the following object structure...
public class CategoryViewModel
{
public int category_id {get; set;}
public string category_name {get; set;}
public List<CategoryDetailsViewModel> details { get; set; }
}
public class CategoryDetailsViewModel
{
public string category_detail_id {get; set;}
public string category_admin {get; set;}
}
Is it possible to use a DetailTable where the details are defined in the parent object? For example, I've tried this, though all the detail tables were empty:
<telerik:RadGrid runat="server" ID="rgCategories" OnNeedDataSource="rgCategories_NeedDataSource" Skin="Silk" AutoGenerateColumns="false">
<MasterTableView>
<DetailTables>
<telerik:GridTableView Name="Category Details">
<Columns>
<telerik:GridBoundColumn HeaderText="Category Admin" DataTextField="details.category_admin"></telerik:GridBoundColumn>
</Columns>
</telerik:GridTableView>
</DetailTables>
<Columns>
<telerik:GridBoundColumn HeaderText="Category" DataField="category_name"></telerik:GridBoundColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>


Does anyone know of a way to easily prevent double clicking the next button. e.g. I dont want to charge the user's credit card twice.
Any help would be great. Thanks!
