如何-TreeView设置选中状态?
因为向树目录添加了数据,更新树后,将其选中的状态更为新加的树结点。
查了很多资料,不行。
不知道这个SelectedNodeIndex或者其它的方法。
老贴了,不知道有会的没有?
如何用?
问题点数:60、回复次数:12Top
1 楼xiaogueizi(寻寻觅觅、冷冷清清、凄凄惨惨戚戚!)回复于 2006-03-07 18:03:54 得分 5
GetTreeCtrl().SetFocusTop
2 楼jiaojia_qf(艺飞)回复于 2006-03-07 18:54:54 得分 5
真是缘分那,我今天也正好在写这个东西,受不了了,查了N多地方了Top
3 楼tjj36(忧郁的眼睛)回复于 2006-03-07 22:34:04 得分 0
to:xiaogueizi
-----------
GetTreeCtrl().SetFocus
是什么属性吗?
怎么没有.Top
4 楼tjj36(忧郁的眼睛)回复于 2006-03-08 08:57:41 得分 0
有没有人知道呀Top
5 楼iegrhn(‘)回复于 2006-03-08 09:37:09 得分 10
你添加新node的时候返回一个index
SelectedNodeIndex=indexTop
6 楼tjj36(忧郁的眼睛)回复于 2006-03-08 09:43:02 得分 0
如何返回。
DataView dv = ds.Tables[0].DefaultView;
TreeNode tmpNd;
dv.RowFilter = "parentid='" + pParentId + "'";
foreach(DataRowView drv in dv)
{
tmpNd = new TreeNode();
string aa = drv[0].ToString();
tmpNd.Expanded = true;
//string strindex = tmpNd.GetNodeIndex(); //treeProduct.SelectedNodeIndex = strindex;
tmpNd.ID = drv[0].ToString();
tmpNd.Text = "<span onclick=\"openProduct('" + drv[0].ToString() + "','"+ drv[1].ToString() +"')\">" + drv[2].ToString() + "</span>";
Nds.Add(tmpNd);
initProductTree(tmpNd.Nodes,tmpNd.ID);
}
是否这样?//部分Top
7 楼tjj36(忧郁的眼睛)回复于 2006-03-08 10:53:01 得分 0
沉了。Top
8 楼tjj36(忧郁的眼睛)回复于 2006-03-08 13:41:56 得分 0
晕了Top
9 楼jiaojia_qf(艺飞)回复于 2006-03-09 10:32:54 得分 1
兄弟,搞定了!我用的 Ajax,等会给你把源码贴上Top
10 楼jiaojia_qf(艺飞)回复于 2006-03-09 10:44:47 得分 39
一、aspx文件
1、javascript函数
</HEAD>
<script language="javascript">
function Initchecknode(groupno)
{
deptgroupper_right.Initchecknode(groupno,Initchecknode_CallBack);
}
function Initchecknode_CallBack(response)
{
if (response.value == null)
{
return;
}
var AllRootNode=new Array();
AllRootNode = TreeView1.getChildren();
for (var i=0;i<response.value.length;i++)
{
AlertNode(response.value[i],AllRootNode);
}
}
function AlertNode(nodeId,NodeArray)
{
if(parseInt(NodeArray.length)==0)
return;
else
{
for(i=0;i<NodeArray.length;i++)
{
var cNode;
cNode=NodeArray[i];
if (cNode.getAttribute("ID") == nodeId)
{
cNode.setAttribute("checked","true");
break;
}
else
{
if(parseInt(cNode.getChildren().length)!=0)
AlertNode(nodeId,cNode.getChildren());
else
continue;
}
}
}
}
</script>
</HEAD>
2、body中添加onload事件
<body onload="Initchecknode('<%=Request.QueryString["groupno"]%>');">
二、CS文件
1、private void Page_Load(object sender, System.EventArgs e)
{
Ajax.Utility.RegisterTypeForAjax(typeof(deptgroupper_right));//deptgroupper_right为你自己页面的文件名,此处为声明Ajax
......
}
2、在cs文件中写一个与javascript同名的函数,注意[Ajax.AjaxMethod()],这个是一定需要的
//查询该操作组所有子节点的ID
[Ajax.AjaxMethod()]
public ArrayList Initchecknode(string groupno)
{
if (groupno == "")
return null;
//GroupNameTextBox.Text = "ssss";
ArrayList al = new ArrayList();
SqlConnection Conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["本地数据库"]);
Conn.Open();
try
{
string strSql = "select deptGroup_no,dept_no from deptGroup_Model where deptGroup_no='" + groupno + "'";
SqlCommand cmd = new SqlCommand(strSql,Conn);
SqlDataReader sdr = cmd.ExecuteReader();
while(sdr.Read())
{
al.Add(sdr.GetValue(1).ToString().Trim());
}
sdr.Close();
cmd.Dispose();
}
finally
{
Conn.Close();
}
return al;
}
三、修改web.config文件,添加如下配置代码
<httpHandlers>
<!-- Register the ajax handler -->
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
</httpHandlers>
四、参考下面这个链接,修改treeview.htc
http://blog.csdn.net/cuike519/archive/2005/02/02/278271.aspx (谢谢这位牛人)Top
11 楼tjj36(忧郁的眼睛)回复于 2006-03-09 15:53:03 得分 0
哈哈,,谢谢啊Top
12 楼LoveMango(幻风)回复于 2006-03-21 21:50:47 得分 0
markTop




