哪些属性(如果有的话)像GridView和TextBox这样的控件保存在它们的控制状态中?

时间:2010-01-06 18:50:26

标签: .net asp.net user-controls webforms


1)什么属性(如果有的话)像GridView和TextBox这样的控件保存在控制状态?顺便说一句 - 我假设这些控件默认启用了控件状态?!


2)控件需要调用Page.RegisterRequiresControlState(在Init事件期间),以便发出需要保持其控制状态的信号。

假设控件A(A的类型为WebControl2)需要保存其控件状态,并且A包含在控件B中(B的类型为WebControl1) - >我能够通过覆盖B的OnInit方法来注册A的控制状态:

protected override void OnInit(EventArgs e)
{
    Control control= this.FindControl("A");

    Page.RegisterRequiresControlState(control);
    base.OnInit(e);
}


这被认为是一种糟糕的编程习惯吗?


感谢名单

1 个答案:

答案 0 :(得分:1)

如果您正在寻找许多控件定义,请查看.NET反射器,这是一个允许您检查它的免费工具。对于GridView,我知道它具有控制状态下的editindex,pageindex,selectedindex,sortexpression,sortdirection,datakeynames,pagecount。我不认为TextBox使用控件状态。

仅将基本属性存储在控件状态中。我不知道攻击另一个控件的状态会有什么好处,因为在控制状态下加载和保存的实际值必须在受保护的LoadControlState和SaveControLState方法中完成。如果启用,值不会自动保存在控制状态。