各位大侠,   麻烦帮忙看一下我的设计是使用AJAX从数据库中调用数据,来实现无限级别的菜单树,但是目前遇到两个问题
第一个:每次点击菜单树,刷新后,都返回页面顶端,怎样刷新后还固定在选择前的位置(使用DIV+CSS的,没有用iframe,由于要使用点击的事件,可能刷新无法避免)第二个问题,当菜单树多次点击之后,大约在30多次之后,会出现反映缓慢的问题,这个问题.
以下是原代码, 麻烦大哥们帮忙看看,小弟分不多55555555555555555,不好意思啊.---------------------------------------aspx文件--------------------------
<form id="form1" runat="server">
     <div class="container">
  
     <div class="MenuTree">
     <asp:TreeView ID="TreeView1" runat="server"  EnableViewState="true" ImageSet="BulletedList" ExpandDepth="0" Font-Size="Medium" OnTreeNodePopulate="TreeView1_TreeNodePopulate" OnSelectedNodeChanged="Select_Change" OnTreeNodeExpanded="TreeNode_Expanded" HoverNodeStyle-CssClass="TreeHoverCss" >
          
            <ParentNodeStyle Font-Bold="False" />
            <HoverNodeStyle Font-Underline="True" ForeColor="#6666AA" />
            <SelectedNodeStyle BackColor="#B5B5B5" Font-Underline="False" HorizontalPadding="0px"
                VerticalPadding="0px" />
            <NodeStyle Font-Names="Tahoma" Font-Size="8pt" ForeColor="Black" HorizontalPadding="5px"
                NodeSpacing="0px" VerticalPadding="1px" />
            
         </asp:TreeView>
     </div> 
     
     
      <div class="content">  
        <asp:Label id="Message" runat="server"/>
        <asp:Label id="Message1" runat="server"/>
        <asp:Image ID="Image1" runat="server" />
       </div>
        </div>
     </form>------------------------------------------cs文件----------------------------------------------------------  void Page_Load()
    {
        if (!Page.IsPostBack)
            PopulateTopNodes();
    }    ///-------------------------构建AJAX菜单部分-------------------------------------------------------------------------
    /// <summary>
    /// Get the top level nodes (nodes with a null ParentId)
    /// </summary>
    private void PopulateTopNodes()
    {
        string selectCommand = "SELECT MID,PID,Content FROM " + DataName + " WHERE PID =" + "-1";
        string conString = WebConfigurationManager.ConnectionStrings["ET_DataBaseConnectionString"].ConnectionString;
        SqlDataAdapter dad = new SqlDataAdapter(selectCommand, conString);
        DataTable dtblMessages = new DataTable();
        dad.Fill(dtblMessages);        foreach (DataRow row in dtblMessages.Rows)
        {
            TreeNode newNode = new TreeNode(row["Content"].ToString(), row["MID"].ToString());
            newNode.PopulateOnDemand = true;
            newNode.SelectAction = TreeNodeSelectAction.SelectExpand;
            TreeView1.Nodes.Add(newNode);
        }        dtblMessages.Dispose();
    }    /// <summary>
    /// Get the child nodes of the expanded node
    /// </summary>
    protected void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e)
    {
        string selectCommand = "SELECT MID,PID,Content FROM "+ DataName +" WHERE PID=@PID";
        string selectCommand2 = "SELECT LID,U1,U2,U3,Content FROM " + DataName + " WHERE Content=@Content";
        string conString = WebConfigurationManager.ConnectionStrings["ET_DataBaseConnectionString"].ConnectionString;
        SqlDataAdapter dad = new SqlDataAdapter(selectCommand, conString);
        SqlDataAdapter dad2 = new SqlDataAdapter(selectCommand2, conString);
        dad.SelectCommand.Parameters.AddWithValue("@PID", e.Node.Value);
        dad2.SelectCommand.Parameters.AddWithValue("@Content", e.Node.Text);
        DataTable dtblMessages = new DataTable();
        dad.Fill(dtblMessages);
        dad2.Fill(dtblUrl);        foreach (DataRow row in dtblMessages.Rows)
        {
            TreeNode newNode = new TreeNode(row["Content"].ToString(), row["MID"].ToString());
            newNode.PopulateOnDemand = true;
            newNode.SelectAction = TreeNodeSelectAction.SelectExpand;
            e.Node.ChildNodes.Add(newNode);
        }        dad.Dispose();
        dad2.Dispose();
        dtblMessages.Dispose();
    }
   
   
    protected void Select_Change(Object sender, EventArgs e)
    {        
        SetupURL(TreeView1.SelectedNode.Text);
              }
含泪跪求中,折腾一天多了,5555555555555555555555555555555