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
Hi
We have aspx page where is added Telerik ReportViewer element:
<
telerik:ReportViewer
ID
=
"ReportViewer1"
runat
=
"server"
Height
=
"99%"
Width
=
"99%"
></
telerik:ReportViewer
>
In cs file we set stuff to that report viewer:
Telerik.Reporting.UriReportSource uriReportSource =
new
Telerik.Reporting.UriReportSource();
uriReportSource.Uri = urlParams[
"ReportFile"
];
bool
ParametersAreaVisible =
true
;
//... some url params handling and loop where inside param add is done this way
uriReportSource.Parameters.Add(
new
Telerik.Reporting.Parameter(key, urlParams[key]));
//... url params handling ended
ReportViewer1.ReportSource = uriReportSource;
ReportViewer1.ParametersAreaVisible = ParametersAreaVisible;
Problem is that from our own test environment we can run reports properly. Customer get vpn connection to our network and can run reports from same environment properly.
Customer has virtual server in azure cloud enviroment where currently is only allowed our and customer connections. From there we can run reports properly, but when customer try to use that page from their network, it will wait long (about minute) and get only toolbar of ReportViewer, no parameters area above that toolbar or any information about db connection problems or something else below.
Any idea where problem could be?
Hello,
I have a radmenu in which when i am clicking on a menu to open it to navigate on other page , the menu item pops up again before it navigate on other page.
Below I have attached a javascript which i have tried to open and close radmenu item:
function OnClientMouseOverHandler(sender, args) {
sender.set_clicked(false);
}
function OnClientItemClicking(sender, args) {
var item = args.get_item()
if (item.get_parent() !== sender) {
item._toggleState();
} else {
if (item.get_isOpen()) {
sender.close(true);
args.set_cancel(true)
}
}
if (item.get_items().get_count() == 0) {
sender.close(true);
}
}
I need to do it like that when i am clicking on any menu item to navigate on another page, menu should not get pop ups. It should stay open till navigate on another page or when i am clicking on menu item to navigate menu should close before navigation.
Below I have attached a gif from that you will get to know what is the problem.
Kindly, help me with best solution.