读书人

同一个页面里两个用户控件间怎么传值

发布时间: 2012-02-03 22:02:47 作者: rapoo

同一个页面里,两个用户控件间如何传值,并刷新呢
同一个页面里,两个用户控件间如何传值,并刷新呢

[解决办法]

探讨
可以在两个用户空间中分别添加连个public属性和方法,一个用来接受传值,另一个用来刷新

[解决办法]
viewstate就可或通过js传递
[解决办法]
方法很多,GET SET是可以的,或者是存放在SESSION里等
[解决办法]
两个用户控件A,B在一个页面里,控件B的要通过A里面的变量来读取数据,问题是A的数据变化了,怎么告诉B并且B刷新数据呢

==========

你的需求太抽象了

到底 A 的数据怎么变化的? 用户客户端操作到底的变化,比如 Dropdownlist ?
[解决办法]
直接在控件A里做个事件,然后在调用2者的页面写个方法处理这个事件刷新控件B
[解决办法]
如果要传递参数的话,再写个事件参数类,事件里将参数一并传递过去
[解决办法]
其中的一个用户控件中需要暴露一个接收值的公共属性。
[解决办法]
例如GridView中的DataSoureID,就可以接收来自DataSource的响应ID值
[解决办法]
一个User Control:UcA.ascx的网页上放有一个TextBox ID为TextBox1;
  一个Page:PageA.aspx;
  一个User Control:UcB.ascx的网页上放有一个Button ID为Button1和一个Label ID为Label1;
  然后把UcA.ascx和UcB.ascx都拉至PageA.aspx上。
  然后在UcA.ascx的TextBox1输入一个值,点UcB.ascx上的Button1,把TextBox1的值传至UcB.ascx的Label1上。

C# code
    protected override void OnInit(EventArgs e)    {        base.OnInit(e);        ((Button)UcB1.FindControl("Button1")).Click += new EventHandler(UcB1_Click);           }    void UcB1_Click(object sender, EventArgs e)    {        TextBox TextBox1 = (TextBox)UcA1.FindControl("TextBox1");        Label Label1 = (Label)UcB1.FindControl("Label1");        Label1.Text = TextBox1.Text;    }
[解决办法]
一个User Control:UcA.ascx的网页上放有一个TextBox ID为TextBox1;
  一个Page:PageA.aspx;
  一个User Control:UcB.ascx的网页上放有一个Button ID为Button1和一个Label ID为Label1;
  然后把UcA.ascx和UcB.ascx都拉至PageA.aspx上。
  然后在UcA.ascx的TextBox1输入一个值,点UcB.ascx上的Button1,把TextBox1的值传至UcB.ascx的Label1上。

C# code
    protected override void OnInit(EventArgs e)    {        base.OnInit(e);        ((Button)UcB1.FindControl("Button1")).Click += new EventHandler(UcB1_Click);           }    void UcB1_Click(object sender, EventArgs e)    {        TextBox TextBox1 = (TextBox)UcA1.FindControl("TextBox1");        Label Label1 = (Label)UcB1.FindControl("Label1");        Label1.Text = TextBox1.Text;    } 

读书人网 >asp.net

热点推荐