各位,我在写了一个用户控件,在里面定义了一个变量属性 "i",然后,我将该控件用到了主页里面去了.怎么样在主页的后台里面给该变量赋值?
请高手指教.急用

解决方案 »

  1.   

    在pageload过程中给用户控件的i赋值就可以!
     Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '在此处放置初始化页的用户代码
         UserControl.i="dd" ''给用户控件赋值,UserControl为用户控件ID
        End Sub
      

  2.   

    有的时候想在页面中调用这个页面的用户控件的方法
    有的时候想在页面中设置这个页面的用户控件中的控件的值
    下面是解决方案
    首先建立一个用户控件uc.ascx
    放置一个Label并且设置它的值为test
    this.Label1.Text="test";
    在这个用户控件内加入一个方法
    public void aa()
      {
       this.Label1.Text="在页面中调用这个页面的用户控件的方法成功";
      }
    创建一个webform导入这个用户控件
    <%@ Register TagPrefix="aa" TagName="bb" Src="uc.ascx" %>
    在页面中包含
    <aa:bb id="top" runat="server"></aa:bb>
    页面中放置两个按钮
    第一按钮事件中加入
    ((uc)this.FindControl("top")).Label1.Text="在页面中设定用户控件中控件的值成功";//这个Label1是用户控件中的Label
    第二个按钮的事件中加入
    ((uc)this.FindControl("top")).aa();以上2个按钮分别完成前面说的2个操作。上面代码中uc为用户控件的类名(也就是用户控件的名字)如果不在同一个命名控件,前面加上命名控件的名字。
      

  3.   

    控件id.i = 赋值
    应该可以的
      

  4.   

    大家先看一下我的代码:
    我在一个用户控件(DataGridView)中是这样写的一个显示图片的属性:
                      /// <summary>
    /// 图片位置
    /// </summary>
    public string ImgUrl
    {
    get
    {
    return this.Imgkeji.ImageUrl;
    }
    set
    {
    this.Imgkeji.ImageUrl=value;
    }
    }
    然后在index.aspx中
    <P align="center"><uc1:datagridview id="DataGridView1" runat="server"></uc1:datagridview></P>
    在index.asp.cs中有:
    ((ServerFlat.UserCtrl.DataGridView)this.FindControl("DataGridView1")).ImgUrl="../Images/kjxw"
    ((ServerFlat.UserCtrl.DataGridView)this.FindControl("DataGridView1")).i=10
    这个是图片的..也不能显示
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    sqlConn.Open(); sqlDataAdapter1.Fill(dataSet1,0,amount,"tblInformation");
    DataGrid1.DataSource =dataSet1;
    DataGrid1.DataBind();
    sqlConn.Close();
    }public int amount

    get
    {
    return i;
    }
    set
    {

    i =value; }
    }
      

  5.   

    属性加个访问器 
    public AccessI
    {
        get{return i;}
        set{i=value;}
    }
    然后再UserControl.AccessI = "";
      

  6.   

    难道((ServerFlat.UserCtrl.DataGridView)this.FindControl("DataGridView1")).i=10;都不可以吗?访问器 ?
    public int i 
    这个不算吗?