I have an array of items of possible CSV fields that when the page load i need it to auto populate with the correct field name of the CSV,
<div id="divRadGridCsvImport_Wrapper" class="RadGridWrapper">
<telerik:RadGrid EnableLinqExpressions="False" ID="radgridCsvMapping" runat="server" AutoGenerateColumns="false" AllowPaging="False" AllowSorting="False" GridLines="None" Width="500">
<ClientSettings EnableRowHoverStyle="true"></ClientSettings>
<MasterTableView>
<Columns>
<telerik:GridTemplateColumn HeaderText="CSV Field">
<ItemTemplate>
<asp:Label ID="CSVfield" runat="server" Text='<%#DataBinder.Eval(Container, "DataItem.CSVfield")%>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Sample Data">
<ItemTemplate>
<asp:Label ID="SampleData" runat="server" Text='<%#DataBinder.Eval(Container, "DataItem.CSVfield")%>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="System Field">
<ItemTemplate>
<asp:DropDownList CssClass="inputfields" ID="dropDownColumnName" onchange="FieldMappingsOnChange(this)" runat="server" />
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
<NoRecordsTemplate>
<div>
<asp:Literal ID="litNoRecords" runat="server" Text="No Records" />
</div>
</NoRecordsTemplate>
</MasterTableView>
</telerik:RadGrid>
</div>
See in the image loaded, i'm trying to make it easier for users so if a match to the field with our field names is closer i.e. same names or close to as possible, it will load these when the page loads. then the user can change and fill in the ones that couldn't be automatically populated. I think Load On Demand may work, but before i try this, i'd like to know if it can be done or what others are doing.
Thanks

Hi,
Since sort time we've moved to XLSX export format of all of our grids but found some strange behavior when exporting data with centriage return (and some of this kind of data). Please see the attachment.
I've debugged the data while exporting, and it seems it is still correct without strange html entities.
Known issue?
Kind regards,
Jelle

Hi all,
How can the footer sum of each group can be displayed in the header of each group .
Thanks,
Sanjay

Hi,
we're trying to build an org chart, but we're getting the "Unable to activate this constraint. Not all values have corresponding parent values." error.
This is the code:
<%@ Page Title="" Language="C#" AutoEventWireup="true" CodeBehind="Prova.aspx.cs" Inherits="TelerikOrgChart.Prova" %><%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %><html> <head> <meta name="viewport" content="width=device-width" /> <title>Prova</title> </head> <body> <form id="form1" runat="server"> <telerik:RadScriptManager runat="server" ID="RadScriptManager1"></telerik:RadScriptManager> <telerik:RadOrgChart ID="RadOrgChart1" runat="server" Skin="Windows7" GroupColumnCount="1"></telerik:RadOrgChart> </form> </body></html>using System;using System.Collections.Generic;using System.Data;using System.Data.Entity;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using OrgChartSice.Data;namespace TelerikOrgChart{ public partial class Prova : System.Web.UI.Page { private DataTable teams; private DataTable employees; protected void Page_Load(object sender, EventArgs e) { OrgChartSiceDbContext orgChartSiceDbContext = new OrgChartSiceDbContext(); var data = orgChartSiceDbContext.dbvw_HRZU_Organigramma_Azienda_Teste.ToList(); var teamList = data .Select(c => new { c.IDBOX, c.IDBOXFATHER, c.DSBOX }) .Distinct().ToList(); var employeeList = data .Select(c => new { c.IDSUBJECT, c.IDBOX, c.NOMINATIVO }) .Distinct().ToList(); CreateTeams(teamList); CreateEmployees(employeeList); RadOrgChart1.GroupEnabledBinding.NodeBindingSettings.DataFieldID = "TeamID"; RadOrgChart1.GroupEnabledBinding.NodeBindingSettings.DataFieldParentID = "ReportsTo"; RadOrgChart1.RenderedFields.NodeFields.Add(new Telerik.Web.UI.OrgChartRenderedField() { DataField = "Team" }); RadOrgChart1.GroupEnabledBinding.NodeBindingSettings.DataSource = teams; RadOrgChart1.GroupEnabledBinding.GroupItemBindingSettings.DataFieldID = "EmployeeID"; RadOrgChart1.GroupEnabledBinding.GroupItemBindingSettings.DataFieldNodeID = "TeamID"; RadOrgChart1.GroupEnabledBinding.GroupItemBindingSettings.DataTextField = "Name"; RadOrgChart1.GroupEnabledBinding.GroupItemBindingSettings.DataSource = employees; RadOrgChart1.DataBind(); } private void CreateEmployees(IEnumerable<dynamic> data) { employees = new DataTable(); employees.Columns.Add("EmployeeID"); employees.Columns.Add("TeamID"); employees.Columns.Add("Name"); //employees.Columns.Add("ImageUrl"); foreach (var item in data) employees.Rows.Add(new string[] { item.IDSUBJECT, item.IDBOX, item.NOMINATIVO }); } private void CreateTeams(IEnumerable<dynamic> data) { teams = new DataTable(); teams.Columns.Add("TeamID"); teams.Columns.Add("ReportsTo"); teams.Columns["ReportsTo"].AllowDBNull = true; teams.Columns.Add("Team"); foreach (var item in data) teams.Rows.Add(new string[] { item.IDBOX, item.IDBOXFATHER == item.IDBOX ? null : item.IDBOXFATHER, item.DSBOX }); } }}This is the stack error:
System.Data.ConstraintCollection.AddForeignKeyConstraint(ForeignKeyConstraint constraint) +2097678 System.Data.ConstraintCollection.Add(Constraint constraint, Boolean addUniqueWhenAddingForeign) +371 System.Data.DataSetRelationCollection.AddCore(DataRelation relation) +929 System.Data.DataRelationCollection.Add(DataRelation relation) +159 System.Data.DataRelationCollection.Add(DataColumn parentColumn, DataColumn childColumn) +45 Telerik.Web.UI.ControlDataBinder.BindToDataTable(DataTable table, String dataFieldID, String dataFieldParentID) +104 Telerik.Web.UI.OrgChartNodeBinder.PerformDataBinding(IEnumerable data) +242 System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data) +128 System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +34 System.Web.UI.WebControls.DataBoundControl.PerformSelect() +143 System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +74 Telerik.Web.UI.OrgChartNodeBinder.SimpleBindingProcedure() +13 Telerik.Web.UI.OrgChartNodeBinder.GroupEnabledBindingProcedure() +168 Telerik.Web.UI.OrgChartNodeBinder.DataBind() +64 Telerik.Web.UI.RadOrgChart.DataBind() +95 TelerikOrgChart.Prova.Page_Load(Object sender, EventArgs e) in C:\MEGA\Projects\OrgChartSice\TelerikOrgChart\Prova.aspx.cs:55 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51 System.Web.UI.Control.OnLoad(EventArgs e) +95 System.Web.UI.Control.LoadRecursive() +59 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +678
Hi,
We are using Telerik UI for ASP.NET AJAX in one of our Asp.net Application, we have a requirement to have a Tree View control with filter option.
Could you please help us if we have TreeView / Filter TreeView in dialog similar to https://demos.telerik.com/kendo-ui/treeview/filter-treeview-in-dialog in Telerik UI for ASP.NET AJAX.

Hi All,
This is Kunal from Bangalore.
I am facing an issue to focus on the first page while reloading the grid.
For Ex. I go to the 3rd page of the grid and re-populate the grid.The new grid displayed is still focussed on the 3rd page.
Is there any way I can get the focus back on the 1st page.
Please send in suitable pointers.
Regards,
Kunal

I made a Grid entirely in CodeBehind, I used the personalizated Template to edit or insert new values.
RadGrid gridTemplate = new RadGrid();DataSet dsTemplate = new DataSet();dsTemplate = ReglasNotificacion.GetTemplates(Convert.ToInt32(dt.Rows[i]["rule_order"].ToString()));gridTemplate.ID = "Grid_" + dt.Rows[i]["rule_order"].ToString();gridTemplate.Attributes.Add("IDRegla", dt.Rows[i]["rule_order"].ToString());gridTemplate.AllowPaging = true;gridTemplate.PageSize = 10;gridTemplate.AllowSorting = true;gridTemplate.ShowStatusBar = true;gridTemplate.PagerStyle.Mode = GridPagerMode.NextPrevAndNumeric;gridTemplate.RenderMode = RenderMode.Auto;gridTemplate.Skin = "Bootstrap";gridTemplate.MasterTableView.AutoGenerateColumns = false;gridTemplate.MasterTableView.DataKeyNames = new string[] { "Cod_Notification", "Cod_Site", "Cod_Template" };gridTemplate.MasterTableView.CommandItemSettings.AddNewRecordText = "Añadir nuevo registro.";gridTemplate.MasterTableView.CommandItemSettings.ShowRefreshButton = false;gridTemplate.MasterTableView.CommandItemDisplay = GridCommandItemDisplay.Top;gridTemplate.MasterTableView.EditMode = GridEditMode.EditForms;gridTemplate.MasterTableView.EditFormSettings.EditFormType = GridEditFormType.Template;gridTemplate.MasterTableView.EditFormSettings.FormTemplate = new MyEditFormTemplate();gridTemplate.MasterTableView.AllowAutomaticUpdates = false;gridTemplate.MasterTableView.AllowAutomaticDeletes = false;gridTemplate.MasterTableView.AllowAutomaticInserts = false;gridTemplate.ItemCommand += new GridCommandEventHandler(gridTemplate_ItemCommand);GridEditCommandColumn edit = new GridEditCommandColumn();edit.UniqueName = "EditCommandColumn";gridTemplate.MasterTableView.Columns.Add(edit);GridBoundColumn boundColumn;boundColumn = new GridBoundColumn();boundColumn.DataField = "Cod_Notification";boundColumn.HeaderText = "Rule";boundColumn.SortExpression = "Cod_Notification";boundColumn.UniqueName = "Cod_Notification";boundColumn.Visible = false;gridTemplate.MasterTableView.Columns.Add(boundColumn);boundColumn = new GridBoundColumn();boundColumn.DataField = "Cod_Site";boundColumn.HeaderText = "Site";boundColumn.SortExpression = "Cod_Site";boundColumn.UniqueName = "Cod_Site";boundColumn.Visible = false;gridTemplate.MasterTableView.Columns.Add(boundColumn);boundColumn = new GridBoundColumn();boundColumn.DataField = "Txt_Site";boundColumn.HeaderText = "Site";boundColumn.SortExpression = "Txt_Site";boundColumn.UniqueName = "Txt_Site";boundColumn.Visible = true;boundColumn.ItemStyle.Width = new Unit(10, UnitType.Percentage);gridTemplate.MasterTableView.Columns.Add(boundColumn);boundColumn = new GridBoundColumn();boundColumn.DataField = "Txt_Template";boundColumn.HeaderText = "Template";boundColumn.SortExpression = "Txt_Template";boundColumn.UniqueName = "Txt_Template";boundColumn.Visible = true;boundColumn.ItemStyle.Width = new Unit(40, UnitType.Percentage);gridTemplate.MasterTableView.Columns.Add(boundColumn);boundColumn = new GridBoundColumn();boundColumn.DataField = "Subject";boundColumn.HeaderText = "Subject";boundColumn.SortExpression = "Subject";boundColumn.UniqueName = "Subject";boundColumn.Visible = true;boundColumn.ItemStyle.Width = new Unit(40, UnitType.Percentage);gridTemplate.MasterTableView.Columns.Add(boundColumn);boundColumn = new GridBoundColumn();boundColumn.DataField = "Cod_Active";boundColumn.HeaderText = "Active";boundColumn.SortExpression = "Cod_Active";boundColumn.UniqueName = "Cod_Active";boundColumn.Visible = true;boundColumn.ItemStyle.Width = new Unit(10, UnitType.Percentage);gridTemplate.MasterTableView.Columns.Add(boundColumn);GridButtonColumn gBtnColumn = new GridButtonColumn();gBtnColumn.CommandName = "Delete";gBtnColumn.Text = "Delete";gBtnColumn.ButtonType = GridButtonColumnType.ImageButton;gridTemplate.MasterTableView.Columns.Add(gBtnColumn);gridTemplate.DataSource = dsTemplate;
I made the class to use to with the TemplateForm.
public class MyEditFormTemplate : IBindableTemplate{ public void InstantiateIn(Control container) { GridEditFormItem item = ((GridEditFormItem)(container.NamingContainer)); //tb1.Text = item.ParentItem.OwnerTableView.DataKeyValues[((GridDataItem)(item.ParentItem)).ItemIndex]["ProviderName"].ToString(); HtmlTable tableLine = new HtmlTable(); tableLine.ID = "Table_Template"; tableLine.Width = "100%"; tableLine.Align = "center"; HtmlTableRow rowTemplate = new HtmlTableRow(); HtmlTableCell cellTemplate = new HtmlTableCell(); HtmlTableCell cellTemplateSite = new HtmlTableCell(); HtmlTableCell cellTemplateTemplate = new HtmlTableCell(); HtmlTableCell cellTemplateSubject = new HtmlTableCell(); HtmlTableCell cellTemplateActive = new HtmlTableCell(); HtmlTableCell cellTemplateButton = new HtmlTableCell(); DropDownList Site = new DropDownList(); DropDownList Template = new DropDownList(); TextBox Subject = new TextBox(); RadButton Activo = new RadButton(); ImageButton Aceptar = new ImageButton(); ImageButton Cancelar = new ImageButton(); DataTable dtSite = TENDERS_Administracion_DefinicionEnvioNotificaciones.getSites(); DataRow drowSite = dtSite.NewRow(); drowSite["COD_ITEM"] = "-1"; drowSite["TXT_ITEM"] = ""; dtSite.Rows.InsertAt(drowSite, 0); Site.DataSource = dtSite; //TENDERS_Administracion_DefinicionEnvioNotificaciones.getSites(); Site.DataValueField = "COD_ITEM"; Site.DataTextField = "TXT_ITEM"; Site.Width = new Unit(70, UnitType.Percentage); Site.ID = "SiteRule"; DataTable dtTemplate = TENDERS_Administracion_DefinicionEnvioNotificaciones.getTemplates(); DataRow drowTemplate = dtTemplate.NewRow(); drowTemplate["COD_ITEM"] = "-1"; drowTemplate["TXT_ITEM"] = ""; dtTemplate.Rows.InsertAt(drowTemplate, 0); Template.DataSource = dtTemplate; //TENDERS_Administracion_DefinicionEnvioNotificaciones.getTemplates(); Template.DataValueField = "COD_ITEM"; Template.DataTextField = "TXT_ITEM"; Template.Width = new Unit(70, UnitType.Percentage); Template.ID = "TemplateRule"; Subject.Width = new Unit(70, UnitType.Percentage); Subject.Style.Add("padding", "unset"); Subject.Style.Add("height", "unset"); Subject.Style.Add("border-color", "unset"); Subject.Style.Add("border-radius", "unset"); Subject.ID = "SubjectRule"; Activo.ToggleType = ButtonToggleType.CheckBox; Activo.ButtonType = RadButtonType.ToggleButton; Activo.ToggleStates.Add("Activado"); Activo.ToggleStates.Add("Desactivado"); Activo.ID = "ActivoRule"; Aceptar.ImageUrl = "~/MRA/img/Ico/guardar.png"; Aceptar.CssClass = "GuardarRegla"; Aceptar.ToolTip = "Guardar"; Aceptar.CommandName = "Guardar"; Aceptar.Style.Add("width", "11px"); Aceptar.Style.Add("height", "11px"); Aceptar.Style.Add("padding", "unset"); Aceptar.Style.Add("border-radius", "unset"); Aceptar.Style.Add("margin-right", "unset"); Aceptar.Style.Add("border","unset !important"); Cancelar.ImageUrl = "~/MRA/img/Ico/eliminar2.png"; Cancelar.CssClass = "EliminarCondicion"; Cancelar.ToolTip = "Cancelar"; Cancelar.CommandName = "Cancelar"; Cancelar.Style.Add("width", "11px"); Cancelar.Style.Add("height", "11px"); Cancelar.Style.Add("padding", "unset"); Cancelar.Style.Add("border-radius", "unset"); Cancelar.Style.Add("margin-right", "unset"); Cancelar.Style.Add("margin-left", "4px"); Cancelar.Style.Add("border", "unset !important"); if (((Telerik.Web.UI.GridItem)container.NamingContainer).DataItem != null && (((Telerik.Web.UI.GridItem)container.NamingContainer).DataItem).ToString() != "Telerik.Web.UI.GridInsertionObject") { DataTable dtData = ((System.Data.DataRowView)((Telerik.Web.UI.GridItem)container.NamingContainer).DataItem).DataView.Table; Site.SelectedValue = dtData.Rows[0]["Cod_Site"].ToString(); Template.SelectedValue = dtData.Rows[0]["Cod_Template"].ToString(); Subject.Text = dtData.Rows[0]["Subject"].ToString(); Activo.Checked = dtData.Rows[0]["COD_ACTIVE"].ToString() == "S" ? true : false; } cellTemplate.Style.Add("width", "2%"); cellTemplateSite.Controls.Add(Site); cellTemplateSite.Style.Add("width", "10%"); cellTemplateTemplate.Controls.Add(Template); cellTemplateTemplate.Style.Add("width", "40%"); cellTemplateSubject.Controls.Add(Subject); cellTemplateSubject.Style.Add("width", "40%"); cellTemplateActive.Controls.Add(Activo); cellTemplateActive.Style.Add("width", "10%"); cellTemplateButton.Controls.Add(Aceptar); cellTemplateButton.Controls.Add(Cancelar); rowTemplate.Cells.Add(cellTemplate); rowTemplate.Cells.Add(cellTemplateSite); rowTemplate.Cells.Add(cellTemplateTemplate); rowTemplate.Cells.Add(cellTemplateSubject); rowTemplate.Cells.Add(cellTemplateActive); rowTemplate.Cells.Add(cellTemplateButton); tableLine.Rows.Add(rowTemplate); container.Controls.Add(tableLine); } public System.Collections.Specialized.IOrderedDictionary ExtractValues(System.Web.UI.Control container) { OrderedDictionary od = new OrderedDictionary(); od.Add("IDRegla", ((RadGrid)container.Parent.Parent.Parent).Attributes["IDRegla"].ToString()); od.Add("Cod_Notification", ((GridEditFormItem)(container)).ParentItem.OwnerTableView.DataKeyValues[((GridDataItem)(((GridEditFormItem)(container)).ParentItem)).ItemIndex]["Cod_Notification"].ToString()); od.Add("Cod_Site", ((GridEditFormItem)(container)).ParentItem.OwnerTableView.DataKeyValues[((GridDataItem)(((GridEditFormItem)(container)).ParentItem)).ItemIndex]["Cod_Site"].ToString()); od.Add("Cod_Template", ((GridEditFormItem)(container)).ParentItem.OwnerTableView.DataKeyValues[((GridDataItem)(((GridEditFormItem)(container)).ParentItem)).ItemIndex]["Cod_Template"].ToString()); od.Add("Site", ((DropDownList)(((GridEditFormItem)(container)).FindControl("SiteRule"))).SelectedValue); od.Add("Template", ((DropDownList)(((GridEditFormItem)(container)).FindControl("TemplateRule"))).SelectedValue); od.Add("Subject", ((TextBox)(((GridEditFormItem)(container)).FindControl("SubjectRule"))).Text); od.Add("Active", ((RadButton)(((GridEditFormItem)(container)).FindControl("ActivoRule"))).Checked == true ? 'S' : 'N'); return od; }}
But I have some problems.
- The form template doesn't disappear when used a imagebutton.
- When used the imagebutton to save data, I can't read ExtractValues for my form template class, because the ItemCommand doesn't use MyEditFormTemplate class.
protected void gridTemplate_ItemCommand(object sender, GridCommandEventArgs e) { string command = e.CommandName; if (command == "Cancelar") { e.Canceled = true; } else if (command == "Guardar") { e.Canceled = true; GridDataItem grid = ((GridDataItem )(e.Item)); Hashtable table = new Hashtable(); grid.ExtractValues(table); } //e.KeepInEditMode = true; //((RadGrid)e.Item.Parent.Parent.Parent).DataBind(); ((RadGrid)e.Item.Parent.Parent.Parent).Rebind(); }
Any Idea?
Thank you very much
