代码之家  ›  专栏  ›  技术社区  ›  Bob Dizzle

在父级中禁用时,如何为子自定义控件启用ViewState?

  •  6
  • Bob Dizzle  · 技术社区  · 16 年前

    我正在尝试创建一个自定义控件,该控件类似于“gridview”,但专门用于实现某些自定义接口的业务对象。

    在做这件事时,我遇到了以下问题。

    我有一个已禁用viewstate的控件(我不想重新启用它),它有一个子控件,我想启用viewstate。我似乎无法让子控件上的viewstate工作,因为它的父控件已禁用。有人知道怎么让它工作吗?

    3 回复  |  直到 16 年前
        1
  •  7
  •   Jason Stevenson    16 年前

    不能对另一个已禁用viewstate的控件中的控件启用viewstate。

    唯一的选项是为外部控件启用它,然后为其中的所有控件禁用它,但需要viewstate的控件除外。

    任何容器上的EnableViewState属性都将重写该容器中所有控件的行为。

    祝你好运!

    编辑: 你可能想看看你的 创建子控件() 方法并使用 启用视图状态 财产。

        2
  •  0
  •   teedyay    15 年前

    如果您愿意手动将数据放入ViewState(而不是让ASP.NET为您保留控件的状态),则可以直接将项放入页面的ViewState,而不是控件的ViewState。

    也就是说,不要说:

    this.ViewState["someKey"] = someValue;
    

    说:

    this.Page.ViewState["someKey"] = someValue;
    

    不过要小心-如果页面上有多个控件实例,则必须确保它们使用不同的键!

        3
  •  0
  •   Johnny5    13 年前

    显然这是可能的 Asp.Net 4.0