csdn大侠们用过这个Infragistics控件库开发的出来帮个忙吧 100分送给你

usernamezero 2009-05-26 06:21:59
以下是代码
static DataTable Pub_dt;
protected void Page_Load(object sender, EventArgs e)
{
string Query_Sql = "select id,deptname,sid from sys_department";
Pub_dt = new DataTable();
Sys_DepartmentSys Qusys = new Sys_DepartmentSys();
Pub_dt = Qusys.getData();
Frist_loaadtree(UltraWebTree1, Pub_dt);
}
public void Frist_loaadtree(UltraWebTree tv, DataTable tb)
{
DataRow[] Rows = Pub_dt.Select("id='001'");
foreach (DataRow Row in Rows)
{
Node node = new Node();
node.Text = Row["deptname"].ToString();
node.DataKey = Row["id"].ToString();
tv.Nodes.Add(node).ShowExpand = true;

int len = (node.DataKey.ToString()).Length + 3;
DataRow[] dr = Pub_dt.Select("id like'" + node.DataKey + "%' and len(id)='" + len + "'");
Sec_loadtree(node, dr);
}
}
public void Sec_loadtree(Node p_id, DataRow[] drs)
{
for (int i = 0; i < drs.Length; i++)
{
Node node = new Node();
node.Text = drs[i]["deptname"].ToString();
node.DataKey = drs[i]["id"].ToString();
p_id.Nodes.Add(node).ShowExpand = true;
}
}
protected void UltraWebTree1_DemandLoad(object sender, WebTreeNodeEventArgs e)
{
int len = (e.Node.DataKey.ToString()).Length + 3;
DataRow[] dr = Pub_dt.Select("id like'" + e.Node.DataKey+ "%' and len(id)='" + len + "'");
if (dr.Length > 0)
{
Sec_loadtree(e.Node, dr);
}
}

这是一个树型结构,基怪的是此树型结构在第一层,二层好用,当点击第二层加载第三层的时候就了错了,即
protected void UltraWebTree1_DemandLoad(object sender, WebTreeNodeEventArgs e)
{
int len = (e.Node.DataKey.ToString()).Length + 3;
此地方的e.Node.DataKey.ToString() 未将对象引用到实例。、开始以为是page_load方法里边的应该放在 !isPostBack 里边,可是当我修改了时候在进行也还是不对
请高手指定下到底是怎么进行加载的,郁闷了
...全文
85 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
feifeiyiwen 2009-05-27
  • 打赏
  • 举报
回复
up
wangyongzhong 2009-05-27
  • 打赏
  • 举报
回复
先支持一下,高手们来啊
qldsrx 2009-05-27
  • 打赏
  • 举报
回复
没人回答啊,那我再试探性的问一下,你试试在UltraWebTree1_DemandLoad里单独将e.Node.Text输出看看,或者判断下e.Node是否为NULL,输出内容可以使用一个Label来显示。然后你再使用UltraWebTree1_NodeClicked尝试一下,可能是你使用的事件有问题也说不定哦。另外你再确定下UltraWebTree1.EnableViewState属性是否为true;
usernamezero 2009-05-26
  • 打赏
  • 举报
回复
我的那个Query_Sq这句没用。我忘了注释了,
Pub_dt = new DataTable();
Sys_DepartmentSys Qusys = new Sys_DepartmentSys();
Pub_dt = Qusys.getData();
Frist_loaadtree(UltraWebTree1, Pub_dt); 我用这四句话构建了一个DataTable Query_Sql没有用
qldsrx 2009-05-26
  • 打赏
  • 举报
回复
不知道你那个变量Query_Sql做什么用的,不过挺奇怪的,除非是除非是第一次加载的对象被释放了,不然不会再第二次加载时找不到第一次加载的对象的(我把每个node称为对象)。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧