因为向树目录添加了数据,更新树后,将其选中的状态更为新加的树结点。
查了很多资料,不行。
不知道这个SelectedNodeIndex或者其它的方法。
老贴了,不知道有会的没有?
如何用?

解决方案 »

  1.   

    to:xiaogueizi
    -----------
    GetTreeCtrl().SetFocus
    是什么属性吗?
    怎么没有.
      

  2.   

    你添加新node的时候返回一个index
    SelectedNodeIndex=index
      

  3.   

    如何返回。
    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);
    }
    是否这样?//部分
      

  4.   

    兄弟,搞定了!我用的 Ajax,等会给你把源码贴上
      

  5.   

    一、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 (谢谢这位牛人)