var
popup = window.radopen(Url,
null
);
popup.OnClientResize = OnClientResize();
<
telerik:RadWindowManager
ID
=
"RadWindowManager1"
runat
=
"server"
KeepInScreenBounds
=
"true"
ReloadOnShow
=
"false"
VisibleStatusbar
=
"false"
ShowContentDuringLoad
=
"false"
EnableShadow
=
"true"
OnClientResize
=
"OnClientResize"
>
</
telerik:RadWindowManager
>
Protected
Overrides
Sub
Render(
ByVal
writer
As
System.Web.UI.HtmlTextWriter)
Page.ClientScript.RegisterForEventValidation(cmdProjectSelected.UniqueID,
"2"
)
Page.ClientScript.RegisterForEventValidation(cmdProjectSelected.UniqueID,
"3"
)
Page.ClientScript.RegisterForEventValidation(cmdProjectSelected.UniqueID,
"4"
)
Page.ClientScript.RegisterForEventValidation(cmdProjectSelected.UniqueID,
"5"
)
MyBase
.Render(writer)
End
Sub
Requirements:
We need to build a self-referencing RadGrid with custom columns (ca 200 - 500 columns), inline editing and yahoo scrolling (ca 500 - 5000 rows).
The grid datasource should have 24 x 5 = 120 columns at least but the grid itself should show at least 24 columns (2 years = 2 x 12 months).
However, each row should show the content of 5 fields (that's why we need overall 24 x 5 = 120 columns).
The user should be able to edit only 1 of the 5 fields per row. We tried double edit click, but for performance reason, it didnt work well.
To improve performance and for better usability, the user shouldnt wait before all the rows are rendered before editing them.
The grid shows tasks with level and outline numbers. The user want to see a hierarchy, so he can collapse/expand task from any level.
See the picture "preview" in attachment to see how the grid currently looks
Problem:
We could successfully implement the grid with custom column, inline editing and yahoo scrolling. Everything so far is working fine.
Our only problem now is to make the grid self-referencing.
When trying this, we have an Error "System.OutOfMemoryException".
When debugging, we found that, this error occurs just after RadGrid1_NeedDataSource in RadGrid1_ColumnCreated
We suspect that the problem has to do with the huge amount of columns (around 100) and the fact that we enable self-referencing.
Any Idea or suggestions?
Code:
The grid is created programmatically because the columns are created dynamically.
aspx : The grid will be later added in PlaceHolder1
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
OnAjaxRequest
=
"RadAjaxManager1_AjaxRequest"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadGrid1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadGrid1"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"Label1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadAjaxManager1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadGrid1"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
<
ClientEvents
/>
</
telerik:RadAjaxManager
>
<
telerik:RadAjaxLoadingPanel
runat
=
"server"
ID
=
"RadAjaxLoadingPanel1"
Height
=
"75px"
Width
=
"75px"
Transparency
=
"25"
/>
<
telerik:RadAjaxPanel
runat
=
"server"
ID
=
"RadAjaxPanel1"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
>
<
asp:PlaceHolder
runat
=
"server"
ID
=
"PlaceHolder1"
>
</
asp:PlaceHolder
>
<
br
/>
<
asp:Label
ID
=
"L_Text_LastChange"
runat
=
"server"
Text
=
"Last change on: "
CssClass
=
"labelText"
></
asp:Label
>
</
telerik:RadAjaxPanel
>
protected
void
Page_Init(
object
sender, EventArgs e)
{
RadGrid1.ID =
"RadGrid1"
;
RadGrid1.AllowMultiRowEdit =
true
;
RadGrid1.AllowMultiRowSelection =
true
;
RadGrid1.GroupingEnabled =
true
;
RadGrid1.Skin =
"Windows7"
;
RadGrid1.Width = Unit.Percentage(97);
//the initial amount of rows to show
RadGrid1.PageSize = 20;
//20
RadGrid1.AllowPaging =
true
;
RadGrid1.AllowSorting =
true
;
RadGrid1.PagerStyle.Mode = GridPagerMode.NextPrevAndNumeric;
RadGrid1.AutoGenerateColumns =
false
;
RadGrid1.GridLines = GridLines.None;
RadGrid1.ShowFooter =
false
;
//PagerStyle
RadGrid1.PagerStyle.Visible =
false
;
//MasterTableView
RadGrid1.MasterTableView.TableLayout = GridTableLayout.Fixed;
RadGrid1.MasterTableView.AutoGenerateColumns =
true
;
RadGrid1.MasterTableView.EditMode = GridEditMode.InPlace;
//ClientSettings
RadGrid1.ClientSettings.Scrolling.ScrollHeight = Unit.Pixel(350);
//350
//Yahoo Scrolling
RadGrid1.ClientSettings.Scrolling.AllowScroll =
true
;
RadGrid1.ClientSettings.Scrolling.UseStaticHeaders =
true
;
RadGrid1.ClientSettings.Scrolling.SaveScrollPosition =
true
;
RadGrid1.ClientSettings.ClientEvents.OnScroll =
"HandleScrolling"
;
//Because of ClientSelectColumn
RadGrid1.ClientSettings.Selecting.AllowRowSelect =
true
;
//Custom row selection
RadGrid1.ClientSettings.ClientEvents.OnRowSelected =
"SelectRows"
;
RadGrid1.ClientSettings.ClientEvents.OnRowDeselected =
"DeSelectRows"
;
//Add editColumn
RadGrid1.MasterTableView.DataKeyNames =
new
string
[] {
"ID"
, STR_TaskOutlineNumber, ColName_TaskName, STR_TaskLevel,
"SAPInternalIDTask"
,
"SAPSystem"
, STR_HasChanged, STR_ColumnChanged };
RadGrid1.MasterTableView.ClientDataKeyNames = RadGrid1.MasterTableView.DataKeyNames;
//Add custom column
addCustomColumns(RadGrid1, gridSource);
//Set Grid Events
RadGrid1.PreRender +=
new
EventHandler(RadGrid1_PreRender);
RadGrid1.ColumnCreated +=
new
GridColumnCreatedEventHandler(RadGrid1_ColumnCreated);
RadGrid1.UpdateCommand +=
new
GridCommandEventHandler(RadGrid1_UpdateCommand);
RadGrid1.NeedDataSource +=
new
GridNeedDataSourceEventHandler(RadGrid1_NeedDataSource);
//Add the grid to the placeholder
this
.PlaceHolder1.Controls.Add(RadGrid1);
//TODO: Not working, throw error "System.OutOfMemoryException", need help here!!!
//Build self-referencing
//RadGrid1.MasterTableView.HierarchyLoadMode = GridChildLoadMode.Client;
//RadGrid1.MasterTableView.HierarchyDefaultExpanded = true;
//RadGrid1.MasterTableView.SelfHierarchySettings.ParentKeyName = "ParentNr";
//RadGrid1.MasterTableView.SelfHierarchySettings.KeyName = "Nr";
//RadGrid1.ClientSettings.AllowExpandCollapse = true;
}
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(!Page.IsPostBack)
{
//Init values when the page is being loaded or accessed for the first time
initValues();
initLabels();
// this would bind the grid calling NeedDataSource
RadGrid1.Rebind();
}
}
RadGrid1_NeedDataSource
protected
void
RadGrid1_NeedDataSource(
object
sender, GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSource = gridSource;
}
RadGrid1_ColumnCreated
protected
void
RadGrid1_ColumnCreated(
object
sender, Telerik.Web.UI.GridColumnCreatedEventArgs e)
{
GridBoundColumn boundColumn = e.Column
as
GridBoundColumn;
//Hide all columns, they will be made visible again later
if
(boundColumn !=
null
)
boundColumn.Visible =
false
;
}
Hello,
Long story in short way -- please take a look at presentation:
http://www.telerik.com/help/aspnet-ajax/understandingtypesstackedbar.html
The text of items are next to each part of bar, how I can achieve this?
My case: in my case texts from both series are displayed next to last (top) parts of bars. I tried to add
<Appearance>
<TextAppearance Position-Auto=false Position-AlignedPosition="Bottom"</TextAppearance>
</Appearance>
in ChartSeries section, but no matter what I enter -- bottom, top, etc. nothing is changing.
Thank you in advance for help.
Remark: Telerik, please expand your documentation and simply add code that produces given screenshots, it is a bit frustrating when you see exactly want you want to achieve, and yet you struggle to do this having only few hints. Thank you.