代码之家  ›  专栏  ›  技术社区  ›  Atzoya

保存在viewstate中的自定义UserControl的属性将丢失其值

  •  0
  • Atzoya  · 技术社区  · 14 年前

    我在aspx页中有一个自定义控件,它的属性名为Size

    public int Size
    {
         get { return Convert.ToInt32(ViewState["CreativeSize"]); }
         set { ViewState["CreativeSize"] = value; }
    }
    

    我在自定义控件中还有一个按钮,它会引发这样的回发

    protected void btnUpload_Click(object sender, EventArgs e)
    {
         if (fuBannerfile.HasFile)
             if (fuBannerfile.FileContent.Length / 1024 > this.Size)
                 ;//code here not important
    }
    

    当调用此事件时,“this.Size”属性为0。在调试期间,我还注意到,在页面加载期间,如果我像这样访问属性:

    int size = customControlId.Size;
    

    属性设置为500。但在此之后,当调试器到达控件内的事件时,属性为0。

    你知道为什么会这样,或者是什么原因造成的吗?

    1 回复  |  直到 14 年前
        1
  •  0
  •   Atzoya    14 年前

    刚刚发现问题所在。

    我在同一页中有5个相同的控件,并且我设置了错误控件的Size属性。。。。