你的设计思路都已经错了。如果要你要的效果,将你页面的Label传给用户控件,然后在用户控件中操作

解决方案 »

  1.   

    如果你希望触发UserControl的事件来给UserControl外的控件赋值的话,那么
    第一、你的UserControl中一定要有可以返回这个值的方法或属性
    第二、可以使用lbl.Text = UserControlObject.方法或属性来进行赋值说得具体点儿,就是当你点击UserControl中的某个按钮或其他的控件时,触发UserControl中的某个方法来得到返回值,或通过这个方法给UserControl中自定义的属性赋值,然后再将这个返回值赋给lbl
      

  2.   

    Sorry,上面的解答在逻辑上存在一定的问题。尝试一下这种方式,看是否可以达到你要的效果
    在UserControl中定义一个存放返回值的属性ResultValue,button的点击事件中为这个属性赋值然后在UserControl的父页面Page_Load事件中添加代码如下(假设UserControl的名字为DemoControl)
    void Page_Load(...)
    {
        ...
        if(IsPostBack)
        {
            lbl.Text = (DemoControl.ResultValue == null) ? "no value result!" : 
                                DemoControl.ResultValue;
        }
    }
      

  3.   

    我的页面上是一个lbl用来显示分数的,同一个用户控件在页面上使用了好多个,但每个都有不同意思,但无论点击那个改变页面上的lbl的分数都是一样一样的lbl都是减1,楼主的方法好像不好做吧,这个用户控件一共在页面上使用了36个
      

  4.   

    这个分数是从数据库中得到的,但是在未提交之前是不能更改数据库的,只是修改一下表单上的值而已,等提交后才能作最终修改,分数是在页面上,在用户控件上修改分数lbl的的值,由于在页面上使用这个用户控件36个对象,但是不管是那个对象都是对页面lbl减1
      

  5.   

    如果是这样的话,建议你使用脚本在前台实现吧。在父页面中添加如下方法
    function demo()
    {
        var lbl = document.getElementById("lbl");
        lbl.innerText = parseInt(lbl.innerText)-1;
    }
    在UserControl的Button上添加客户端事件响应onclick="demo();"
      

  6.   

    其实就是用this.page.findcontrol就行