2012-10-11 58 views
2

我与Telerik的Ajax控件工作RadOrgChartTelerik的RadOrgChart节点点击事件

我想被点击一个节点时捕捉(其实右点击)在组织结构图。我希望事件传递点击节点的ID。

我在OrgChart中找不到任何这样的事件。

任何人都可以请建议如何做到这一点。

感谢

回答

1

谢谢Ewerton。

我发现了一种更好的方式来代替客户端。

每个Telerik的组织结构图节点有默认的CSS类,所以像这样的工作:

$telerik.$(".rocItem").click(function (e) { 
      var orgChart = $find("<%= RadOrgChart1.ClientID %>"); 
      var index = orgChart._extractGroupItemFromDomElement(e.target).get_index(); 
      var hierarchicalIndex = orgChart._extractNodeFromDomElement(e.target)._getHierarchicalIndex(); 
      hierarchicalIndex = orgChart._getRealHierarchicalIndex(hierarchicalIndex); 
      alert("Clicked " + hierarchicalIndex); 
     }) 
+1

尼斯cliente解决方案。在你原来的问题中,你说“我在OrgChart中找不到任何这样的事件”,所以我(错误地)认为你正在要求一个服务器事件。事实上,您的解决方案不会调用任何服务器方法,但您可以使用jQuery的ajax API来解决此问题。现在你有两条途径来解决你的问题,选择最适合你系统的那个。 – Ewerton

+0

层次结构ID引用了每个层次上节点的从0开始的索引,因此“0:2:1”的层次结构ID引用了第一个父节点的第三个子节点的第二个孙。如果您想要节点的ID,请对orgChart._extractNodeFromDomElement(e.target)的结果调用getId(),而不是_get HierarchicalIndex()。 –

1

阅读该文档我看到RadOrgChart不必须为节点点击事件处理程序,所以我认为你可以使自己的ItemTemplate和处理模板,像这样的项目的点击。

<telerik:RadOrgChart ID="RadOrgChartDirectReports1" EnableViewState="true" Skin="Office2010Silver" 
     runat="server"> 
     <ItemTemplate> 
      <asp:Button CausesValidation = "false" OnClick="LinkButton_Click" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "EmployeeId")%>' 
       runat="server" Text = "Click" ID="LinkButtonNode"></asp:Button> 
     </ItemTemplate>   
    </telerik:RadOrgChart> 

在这个例子中你把一个按钮放在一个项目中,所以,你可以处理按钮的点击。