ASPxTreeList 取值,做链接,实际运用。

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using ty.Model; using ty.BLL; using DevExpress.Web.ASPxTreeList; public partial class TreeListtest2 : System.Web.UI.Page { //TreeListNode localFolders; int num1 = 10; int num2 = 100; int num3 = 1000; int num4 = 1500; string text=null; protected void Page_Load(object sender, EventArgs e) { CreateNodes(); } void CreateNodes() { //this.ASPxTreeList1.Nodes.Clear();//清空树节点 DataTable dtLine = new LINE_PARA_TSM_DLRBLL().SelectLineName(); //线路信息表 DataTable dtLineStrain = new STRAIN_PARABLL().SelectLineStrain(""); //耐张段信息配置 DataTable dtLSS = new SPAN_PARABLL().SelectLSS(); //档距信息配置 DataTable dtDeviceName = new DEVICE_CONFIG_PARA_TSM_DLRBLL().SelectAllDeviceName2(); //数据采集配置参数 TreeListNode localFolders = CreateNodeCore(1, "Folder", "东菀供电局","", null); //localFolders.Expanded = true;//展开节点 TreeListNode communityNode = CreateNodeCore(2, "Folder", "数据采集终端","", null); for (int a = 0; a < dtLine.Rows.Count; a++) { TreeListNode linelist = CreateNodeCore(num1 + a, "Inbox", dtLine.Rows[a][1].ToString(), "a.aspx", localFolders);//线路信息表 for (int b = 0; b < dtLineStrain.Rows.Count; b++) { if (dtLineStrain.Rows[b][1].ToString() == dtLine.Rows[a][1].ToString()) {//如果耐张段信息配表和线路容量历史数据有共同的线路名才输出来 TreeListNode StrainList = CreateNodeCore(num2 + b, "Outbox", dtLineStrain.Rows[b][2].ToString(), "Default11.aspx", linelist);//耐张段信息配置 for (int c = 0; c < dtLSS.Rows.Count; c++) { if (dtLSS.Rows[c][0].ToString() == dtLine.Rows[a][1].ToString() && dtLSS.Rows[c][1].ToString() == dtLineStrain.Rows[b][2].ToString()) {// 如果档距信息配置表和线路容量历史数据有共同的线路名 档距信息配置表和耐张段信息配表有共同的耐张段名称才输出 CreateNodeCore(num3 + c, "SentItems", dtLSS.Rows[c][2].ToString(), "Default8.aspx", StrainList); } } } } } for (int i = 0; i < dtDeviceName.Rows.Count; i++) {//数据采集配置参数 CreateNodeCore(num4 + i, "DeletedItems", dtDeviceName.Rows[i][0].ToString(), "Default7.aspx", communityNode); } ASPxTreeList1.ExpandAll();//展开所有节点 } TreeListNode CreateNodeCore(object key, string iconName, string text,string url, TreeListNode parentNode) { TreeListNode node = ASPxTreeList1.AppendNode(key, parentNode);//添加到TreeListNode数组里 node["IconName"] = iconName;//图片名 node["Name"] = text;//节点值 node["Url"] = url;//路径 return node; } protected string GetIconUrl(TreeListDataCellTemplateContainer container) { return string.Format("~/Images/Demo/MailIcons/{0}.png", container.GetValue("IconName"));//读取图片路径 //container.ResolveUrl } public string GetServeUrl() { if (text == "北南甲线") return "~/a.aspx"; else return "~/Default11.aspx"; //return null; } protected void ASPxTreeList1_CustomDataCallback(object sender, TreeListCustomDataCallbackEventArgs e) { string key = e.Argument.ToString(); TreeListNode node = ASPxTreeList1.FindNodeByKeyValue(key); //string key = ASPxTreeList1.GetFocusedNodeKey(); e.Result = GetEntryText(node); } protected string GetEntryText(TreeListNode node) { if (node != null) { text = node["Url"].ToString(); return text;//.Trim().Replace("/r/n", "<br />"); } return string.Empty; } protected void ASPxTreeList1_FocusedNodeChanged(object sender, EventArgs e) { //string key = e.Argument.ToString(); //TreeListNode node = ASPxTreeList1.FindNodeByKeyValue("11"); //e.Result = node; //if (text == "北南甲线") // Response.Redirect("a.aspx"); //else // Response.Redirect("Default11.aspx"); } }  

 

        //钥匙值防止重复 前面指定了根节点最小值只能从3开始
        int num1 = 3;
        int num2 = 3;
        int num3 = 3;
        int num4 = 3;
        num2 = num1+ dtLine.Rows.Count+1;
        num3 = num2+ dtLineStrain.Rows.Count + 1;
        num4 = num3 + dtLSS.Rows.Count + 1;

 

 

后台:

 

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TreeListtest2.aspx.cs" Inherits="TreeListtest2" %> <%@ Register assembly="DevExpress.Web.ASPxTreeList.v10.1, Version=10.1.5.0, Culture=neutral, PublicKeyToken=41f74a48e1b65e16" namespace="DevExpress.Web.ASPxTreeList" tagprefix="dx" %> <%@ Register assembly="DevExpress.Web.ASPxEditors.v10.1, Version=10.1.5.0, Culture=neutral, PublicKeyToken=41f74a48e1b65e16" namespace="DevExpress.Web.ASPxEditors" tagprefix="dx" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <dx:ASPxTreeList ID="ASPxTreeList1" runat="server" AutoGenerateColumns="False" Height="232px" Width="300px" oncustomdatacallback="ASPxTreeList1_CustomDataCallback" onfocusednodechanged="ASPxTreeList1_FocusedNodeChanged"> <Settings ShowColumnHeaders="False" /> <SettingsBehavior AllowFocusedNode="True" ExpandCollapseAction="NodeDblClick" /> <ClientSideEvents FocusedNodeChanged="function(s, e) { var key = ASPxTreeList1.GetFocusedNodeKey(); ASPxTreeList1.PerformCustomDataCallback(key); }" CustomDataCallback="function(s, e) { var ssrc=e.result; if (ssrc.length==0) return; parent.document.all('Iframe0').src=ssrc; }" /> <Templates> <DataCell> <table cellpadding="0" cellspacing="0"> <tr> <td> <dx:ASPxImage ID="ASPxImage1" runat="server" Height="16" ImageUrl="<%# GetIconUrl(Container) %>" IsPng="true" Width="16" /> </td> <td> </td> <td style="padding-bottom: 1px;" mce_style="padding-bottom: 1px;"> <a><%# Container.Text %></a> </td> </tr> </table> </DataCell> </Templates> <Columns> <dx:TreeListTextColumn FieldName="Name" VisibleIndex="0"> </dx:TreeListTextColumn> </Columns> <SettingsCustomizationWindow Enabled="True" /> </dx:ASPxTreeList> </div> </form> </body> </html>  

前台:

 

 

后台方法:

 

    public string GetServeUrl()

    {

        if (text == "北南甲线")

            return "~/a.aspx";

        else

            return "~/Default11.aspx";

    }

 

 

前台:

获得节点还可以这样获得

<a href="<%#Container.ResolveUrl(GetServeUrl()) %>"><%# Container.Text %><a>

 

这样的写法  不够犀利。

 


 

ASPxTreeList 取值,做链接,实际运用。_第1张图片

属性设置

 

ASPxTreeList 取值,做链接,实际运用。_第2张图片

事件设置

 

 

显示效果,查询了数据库4个不同表,组合成树

 

你可能感兴趣的:(object,String,server,assembly,null,templates)