asp.net用户控件的公共属性的生命周期和赋值

asp.net用户控件的公共属性可以用特性声明的方式赋值,如   <uc1:WebUserControl1 runat="server" id="WebUserControl1"  Projectid="20191204153020"  />,

这种情况下,无论是用户控件本身的postback还是父页面的postback,均可以正常使用这个值。

但是如果在父页面的page_load事件的 !ispostback代码块里赋值,如

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                WebUserControl2.Projectid = 20200610101559;
            }
        }

  则在控件的postback里,取不到这个值,如

      protected void Button1_Click(object sender, EventArgs e)
        {
            Button1.Text =projectid.ToString();
        }

以上代码取到的projectid值为0。

对这个问题的解决方法有两种:

1,父页面在page_load里赋值时,不要放在!ispostback块,

2,自行保存,如在用户控件里增加隐藏域。

 

asp.net用户控件的公共属性的生命周期和赋值

上一篇:css控制div的各种形状


下一篇:CSS3 :nth-child() / :nth-of-type(n)选择器