我是创建了一个用户控件UCControlSystem.ascx,用户控件里面有一个TreeVeiw控件。 
那么我在b.aspx添加了若干个用户控件UCControlSystem.ascx。我要实现单击TreeVeiw的某个TreeNode时,将得到的数据显示在b.aspx的GridVeiw中,谁能给我讲讲怎么实现啊。 

解决方案 »

  1.   

    在b.aspx中使用iframe,并将gridview放入其中
    将treenode的target设置为iframe的name,navigateurl传递参数到iframe中.
    根据参数检索数据并绑定到grideviewk ..
      

  2.   

    楼主,你看能否这样实现:
    在UCControlSystem.ascx中定义一个属性,
    public   string   TreeNodeValue  
      {  
          get   {   return   Treeview1.TreeNode.Value;}  
      }   
    Treeview1 tv   =   (Treeview)YourUserControlID.FindControl("YourTreeviewID");  
      string   s   =   Treeview.TreeNode.Value;
      

  3.   

       给你个参照一下<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="CSDN7_Default2" %><%@ Register Src="UcA2.ascx" TagName="UcA2" TagPrefix="uc1" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Untitled Page</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <uc1:UcA2 ID="UcA2_1" runat="server" />
        </div>
        </form></body>
    </html>   
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;public partial class CSDN7_Default2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            (UcA2_1.FindControl("Button1") as Button).Click += new EventHandler(Button1_Click);
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            (UcA2_1.FindControl("Label1") as Label).Text = TextBox1.Text;
        }
    }UcA2.ascx<%@ Control Language="C#" AutoEventWireup="true" CodeFile="UcA2.ascx.cs" Inherits="Control_UcA2" %>
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    <asp:Button ID="Button1" runat="server" Text="Button" />
      

  4.   

    如果是winform好实现!要是web就得用框架或都单击重新打开新页面吧!
      

  5.   

    我通过传值功能实现啦,但是有个问题,但是我每次都把真个页面提交给服务器。
    我想实现的是若干个用户控件UCControlSystem.ascx里的treeview不刷新,只刷新Gridview。
    也就是点击treeview中的node给gridveiw绑定不同的值。就像CSND论坛一样。只刷新右边的,左边的不变。
    怎么实现啊
      

  6.   

    你想不刷,就有树右边加一个iframe
      

  7.   

    public void Select_Change(Object sender, EventArgs e)
        {
           string url = "TreeSelect.aspx?SelectTable=" + MyTreeView.SelectedNode.Value + "&Conts_no=" + systemno;
            Response.Write("<script language=javascript>"); 
            Response.Write("window.parent.frames['RefrashGV'].location.href='url'"); 
            Response.Write("</script>"); 
        }
    TreeSelect.aspx中源为:
    <iframe id="RefrashGV">  
    <asp:GridView ID="GV" runat="server">
    </asp:GridView>
    </iframe>
    提示错误为:
    window.parent.frames.RefrashGV.location为空或不是对象。
    不知道怎么改,请指点