or
| dock.Attributes.Add("OnDockPositionChanged", "RadDock_DockPositionChanged") |
| dock.OnClientDockPositionChanged = "RadDock_DockPositionChanged" |
| Protected Sub RadDock_DockPositionChanged(ByVal sender As Object, ByVal e As Telerik.Web.UI.DockPositionChangedEventArgs) |
| Dim dock As RadDock |
| dock = DirectCast(sender, RadDock) |
| If dock.DockZoneID <> e.DockZoneID Then |
| ... |
Hi,
I try to generate an OrgChart dynamically, for do that, I need to add actions to the orgChart item (by RadButton).
In my first POC, I try the programm below.
<%@ Control language="C#" Inherits="DotNetNuke.Modules.Quanteam.ContractModule.View" AutoEventWireup="false" Codebehind="View.ascx.cs" %><%@ Register assembly="System.Web.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" namespace="System.Web.UI.WebControls" tagprefix="asp" %><%@ Register TagPrefix="telerik" Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" %><asp:MultiView ID="multiView" runat="server"> <asp:View ID="ViewContractDetail" runat="server"> <telerik:RadOrgChart runat="server" ID="radOrgChart"> <Nodes> <telerik:OrgChartNode> <ItemTemplate> <div style="background-color: Red; height: 80px; width: 180px;"> <telerik:RadButton ID="TestBtnOrgChart" Text="click : 0" runat="server" OnClick="onClick_Handler" ValidationGroup="ParamValidationGroup" ButtonType="LinkButton" BorderStyle="None"> <Icon PrimaryIconUrl="~/images/Add.gif" PrimaryIconLeft="5px" /> </telerik:RadButton> </div> </ItemTemplate> <GroupItems> <telerik:OrgChartGroupItem Text="Click for Test" /> </GroupItems> </telerik:OrgChartNode> </telerik:RadOrgChart> </asp:View></asp:MultiView>
private void Page_Load(object sender, System.EventArgs e) { try { System.Web.UI.WebControls.View view = FindControl("ViewContractDetail") as System.Web.UI.WebControls.View; multiView.SetActiveView(view); //---------------------------------------------------- // RadOrgChart //---------------------------------------------------- var nodeContract = new OrgChartNode(); radOrgChart.Nodes.Add(nodeContract); OrgChartGroupItem topContract = new OrgChartGroupItem() { Template = new MyTemplate("btnOrgChart1") }; nodeContract.GroupItems.Add(topContract); var node = new OrgChartNode(); topContract.Node.Nodes.Add(node); OrgChartGroupItem missionNode = new OrgChartGroupItem() { Template = new MyTemplate("btnOrgChart2", onClick_Handler) }; node.GroupItems.Add(missionNode); //---------------------------------------------------- // RadButton //---------------------------------------------------- RadButton radBtn = new RadButton(); radBtn.ID = "btn_1"; radBtn.Text = string.Format("click : {0}", 0); radBtn.Click += onClick_Handler; view.Controls.Add(radBtn); } catch (Exception exc) //Module failed to load { Exceptions.ProcessModuleLoadException(this, exc); } } class MyTemplate : ITemplate { private string _id; private System.EventHandler _onClick; public MyTemplate(string id) { _id = id; _onClick = onClick_Handler; } public MyTemplate(string id, System.EventHandler onClick) { _id = id; _onClick = onClick; } public void InstantiateIn(Control container) { RadButton radBtn = new RadButton(); radBtn.ID = _id; radBtn.Text = string.Format("click {1} : {0}", 0, _id); radBtn.Click += _onClick; container.Controls.Add(radBtn); } protected void onClick_Handler(object sender, System.EventArgs e) { RadButton radBtn = sender as RadButton; radBtn.Text = string.Format("click {1} : {0}", Convert.ToInt32(radBtn.Text.Split(':')[1]) + 1, _id); } } protected void onClick_Handler(object sender, System.EventArgs e) { RadButton radBtn = sender as RadButton; string[] items = radBtn.Text.Split(':'); radBtn.Text = string.Format("{0} : {1}", items[0], Convert.ToInt32(items[1].Trim()) + 1); }
When I try this program, the button created into the OrgChart by API call the Page_Load handler, but not the associated click handler.
Even if the handler came from the view or from the custom ITemplate class.
The two buttons of control :
- generated with the ASX and inside of the OrgChart
- generated with the API and outside of OrgChart
works normally.
Why my two Button generated with API into the OrgChar seems to don't call the Click event.
For information, I begin on ASP.Net since few week.
Thanks for your help.

<telerik:RadAsyncUpload runat="server" ID="RadAsyncUpload1" AllowedFileExtensions="png" Width="100%" MaxFileSize="524288" OnFileUploaded="RadAsyncUpload1_FileUploaded" OnClientFileUploaded="fileUploaded" /><rad:RadGrid Skin="Office2007" runat="server" OnItemDataBound="gridAdd_ItemDataBound" AllowAutomaticDeletes="True" OnItemCommand="RadGrid1_ItemCommand" AllowAutomaticInserts="True" OnInsertCommand="gridAdd_InsertCommand" NoMasterRecordsText="No Files selected for this PO" OnDeleteCommand="gridAdd_ItemDeleted" AutoGenerateColumns="false" id="gridAdd" AllowPaging="true" PageSize="5" onneeddatasource="gridAdd_NeedDataSource"> <MasterTableView NoMasterRecordsText="No Files selected for this PO" EditMode="InPlace" AllowAutomaticUpdates="false" AllowAutomaticInserts="true" CommandItemDisplay="Bottom" DataKeyNames="ID,FileID, GVMXID" > <Columns> <rad:GridEditCommandColumn ButtonType="LinkButton" UniqueName="EditCommandColumn2"> <HeaderStyle Width="20px" /> </rad:GridEditCommandColumn> <rad:GridTemplateColumn HeaderText="File" > <ItemTemplate> <rad:RadComboBox Visible="false" CheckBoxes="true" OnDataBinding="comboFiles_DataBind" DataSourceID="odsFiles" Height="200" Skin="Vista" ID="comboFiles" Width="200" DataTextField="OriginalName" DataValueField="ID" runat="server"> </rad:RadComboBox> <asp:Label ID="lblFileName" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.FileName") %>'></asp:Label> </ItemTemplate> <ItemStyle Wrap="true" Width="100" HorizontalAlign="Center" /> <HeaderStyle ForeColor="#4e6ea4" HorizontalAlign="Center" Font-Bold="true" /> </rad:GridTemplateColumn> <rad:GridTemplateColumn HeaderText="TM" > <ItemTemplate> <rad:RadComboBox Visible="false" AppendDataBoundItems="true" Height="200" Skin="Vista" ID="comboTMs" DataSourceID="odsTMs" DataTextField="TMName" DataValueField="ID" runat="server"> </rad:RadComboBox> <asp:Label ID="lblTMName" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.TMName") %>'></asp:Label> </ItemTemplate> <ItemStyle Wrap="true" Width="100" HorizontalAlign="left" /> <HeaderStyle ForeColor="#4e6ea4" HorizontalAlign="Center" Font-Bold="true" /> </rad:GridTemplateColumn> <rad:GridTemplateColumn HeaderText="Tag Settings" > <ItemTemplate> <table> <tr><td style="border:0px; min-width:150px;"> <asp:CheckBox Visible="false" onclick="toggle(this)" runat="server" Checked="true" ID="chkDefault" Text="Use Default Tag Settings" /> </td></tr> <tr><td style="border:0px;"> <asp:FileUpload Visible="false" runat="server" ClientIDMode="Static" ID="fileUpload" /> </td></tr> </table> <asp:Label ID="lblTagSettings" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.TagSettings") %>'></asp:Label> </ItemTemplate> <ItemStyle Wrap="true" Width="100" HorizontalAlign="Center" /> <HeaderStyle ForeColor="#4e6ea4" HorizontalAlign="Center" Font-Bold="true" /> </rad:GridTemplateColumn> <rad:GridButtonColumn ConfirmDialogType="RadWindow" ConfirmText="Are you sure you want to delete this file from PO?" ButtonType="ImageButton" CommandName="Delete" Text="Delete" UniqueName="DeleteDiscount"> <HeaderStyle Width="20px" /> </rad:GridButtonColumn> </Columns> <CommandItemSettings ShowRefreshButton="false" AddNewRecordText="Add New Files" /> </MasterTableView> </rad:RadGrid>protected void gridAdd_NeedDataSource(object sender, GridNeedDataSourceEventArgs e){ gridAdd.DataSource = (List<POFilesInMemory>)Session["POFiles"]; }public class POFilesInMemory{ public int FileID { get; set; } public string FileName { get; set; } public int TMID { get; set; } public string TMName { get; set; } public string TagSettingsName { get; set; }}