当前位置:编程学习 > C#/ASP.NET >>

同一个.aspx页面中2个.ascx的互相调用问题

各位大侠好,我是个刚学习的小菜鸟,这里有个问题,还望大家拔刀相助不吝赐教。

在a.aspx页面中用 <%@ Register Src="Controls/b.ascx" TagName="b" TagPrefix="uc1" %> 包含了b.ascx和c.ascx 这两个同级别controls。在c.ascx中有按钮cBtn,b.ascx中有按钮bBtn和Label型控件bLabel(初始值bOld)。

cBtn中的后台代码用FindControl的方法成功对bLabel的值进行了修改(bNew),但是页面上bLabel的值还是原来的bOld,没有即时更新为bNew。需要点击bBtn按钮刷新b.ascx页面后,bLabel的值才会更新。

请问:如何让cBtn修改后的bLabel值即时更新?或者有什么办法让cBtn去刷新b.ascx页面(或者调用bBtn去刷新b.ascx)? --------------------编程问答-------------------- IsPostBack   问题 --------------------编程问答--------------------
引用 1 楼 lmaohuanl 的回复:
IsPostBack 问题

有什么办法让cBtn去刷新b.ascx页面(或者调用bBtn去刷新b.ascx)? --------------------编程问答-------------------- 直接PostBackUrl="XXX.aspx"到那个页面 --------------------编程问答-------------------- 看了你的描述,我原以为与页面生存周期有关
于是特意测试了一下,不过也没发现你这样的问题啊?
不知道你页面代码是怎么写的?
我的如下
public partial class UCA : System.Web.UI.UserControl
    {
       
        protected void Page_Load(object sender, EventArgs e)
        {
            BtnTesta.Click += new EventHandler(BtnTesta_Click);
           
        }

        void BtnTesta_Click(object sender, EventArgs e)
        {
            Control ct = Page.FindControl("UCB1").FindControl("LabTestb");
            if (ct != null)
            {
                Label lab = ct as Label;
                lab.Text = "cta change";
            }
            else
            {
                Response.Write("not find ucb1->labtestb");
            }
        }
    }
}

即使吧更改语句放在pageLoad事件中,也不会有问题
还有我特意改变了一下 UCA,UCB在页面中的顺序,同样没问题啊。?
 
你的代码能否贴出来一看。 --------------------编程问答-------------------- 不知道你如何组织程序流程。你写一个简化版的demo出来,复现你的问题。 --------------------编程问答--------------------
引用 3 楼 lmaohuanl 的回复:
直接PostBackUrl="XXX.aspx"到那个页面


我现在就是不想刷新。aspx页面。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,