VS.2003 的树绑定,呵呵不怎么好
最近程序要求,用树形菜单显示信息,但是节点过多,很不方便查找,于是加了工-搜索节点,并展开树形菜单,默认选中
说明:parentId需要搜索的节点ID
if(!Page.IsPostBack)
{
Agent ag=new Agent();
DS=ag.FindChannelShowTree();
ShowTree(ChannelsTreeView.Nodes,"100");
}
private void ShowTree(Microsoft.Web.UI.WebControls.TreeNodeCollection Nds, string parentId)
{
DataView dv=new DataView() ;
//DataRowView drv;
TreeNode tmpNd;
string strId;
string kd=null;
dv.Table = DS.Tables["Agent"];
dv.RowFilter = "ag_PARENTID='" + parentId + "'";
//将搜索出来的夫节点放入数组,我是对节点分了等级的
System.Collections.ArrayList numlist=new ArrayList();
string NodeID=null;
Agent ag=new Agent();
ag.FindNodeLvl(sid,out k);/返回k第几等级
m=sid;
for(int i=0;i
{
numlist.Add(m);
bool b=ag.FindNode( m,out NodeID);
if(b)
{
m=NodeID;
}
}
foreach(DataRowView objRow in dv)
{
tmpNd=new TreeNode();
kd=(string)objRow["ag_AgentID"];
strId=kd;
tmpNd.ID=strId.ToString();
tmpNd.Text=objRow["ag_AgentName"].ToString();
tmpNd.NavigateUrl="ShowChannel.aspx?ChannelID=" + objRow["ag_AgentID"] + "";
tmpNd.Target="mainframe2";
for(int x=0;x
{
if(kd==numlist[x].ToString())
{
tmpNd.Expanded=true; //搜索的节点的所有父节点打开
}
if(kd==sid)
{
tmpNd.Checked=true; //我想默认搜索到并展开,可是在vs.2003我没法实现,(此步失败)
}
}
Nds.Add(tmpNd);
ShowTree(Nds[Nds.Count-1].Nodes,strId,sid);
}
}
搜索默认选中还有待解决呵呵~~~~