2012-03-23 2 views
0

У меня есть страница, в которой есть каталог деревьев людей, работающих в этой компании. Первоначально единственным способом открыть узлы было щелкнуть по маленькому +/-, но когда вы доберетесь до последнего уровня, имя человека было там и можно щелкнуть на свою биографию. С тех пор я установил его туда, где текст также расширит узел, но теперь имя больше не доступно для клика. Он по-прежнему имеет вид «ссылки» (синий, подчеркнутый, при наведении курсора на красный), но значок остается неизменным и не поворачивается к пальцу. Когда я удаляю событие TreeNodeDataBound и его код, имена работают, но я не могу расширять его, нажимая на текст больше. Есть ли способ иметь и то и другое?TreeNodeBinding и проблемы с связями

Я попытался выяснить NavigateURL, но информация поступает из внешнего XMLDataSource. Если это простое решение, я этого не знаю.

Спасибо заранее!

Вот код на странице ...

<%@ Control language="C#" Inherits="Modules.PeopleNav.PeopleByAlpha" CodeFile="PeopleByAlpha.ascx.cs" AutoEventWireup="true"%> 
<%@ Register TagPrefix="dnn" TagName="Audit" Src="~/controls/ModuleAuditControl.ascx" %> 
<asp:TreeView ID="TreeView1" runat="server" DataSourceID="XmlDataSource1" 
    ExpandDepth="1" onselectednodechanged="TreeView1_SelectedNodeChanged" OnTreeNodeDataBound="TreeView1_TreeNodeDataBound"> 
    <DataBindings> 
    <asp:TreeNodeBinding DataMember="Person" ValueField="Value" TextField="Name"> 
     </asp:TreeNodeBinding> 
     <asp:TreeNodeBinding DataMember="AlphaBreak" TextField="Name"> 
     </asp:TreeNodeBinding> 
     <asp:TreeNodeBinding DataMember="PeopleAlpha" TextField="Name"> 
     </asp:TreeNodeBinding> 
    </DataBindings> 
</asp:TreeView><br /> 

<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/Portals/0/Docs/PeopleAlpha.xml"></asp:XmlDataSource> 

И отделенного кода (с .Expand работает и ссылки не работают) ...

protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) 
    { 
     String sURL = TreeView1.SelectedNode.Value.ToString(); 
     if (sURL.Length > 5) 
     { 
      String sExt = sURL.Substring(sURL.Length - 4, 4); 
      if (sExt == "aspx") 
      { 
       Response.Redirect(sURL); 
      } 
     } 
    } 

    protected void TreeView1_TreeNodeDataBound(object sender, TreeNodeEventArgs e) 
    { 
     e.Node.SelectAction = TreeNodeSelectAction.Expand; 

    } 

ответ

1

Изменение выберите действие для TreeNodeSelectAction.SelectExpand:

protected void TreeView1_NodeDataBound(object sender, TreeNodeEventArgs e) 
    { 
      e.Node.SelectAction = TreeNodeSelectAction.SelectExpand; 
    } 
+0

Спасибо! Я ценю это! – Peter

Смежные вопросы