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);
}
这被认为是一种糟糕的编程习惯吗?
感谢名单
答案 0 :(得分:1)
如果您正在寻找许多控件定义,请查看.NET反射器,这是一个允许您检查它的免费工具。对于GridView,我知道它具有控制状态下的editindex,pageindex,selectedindex,sortexpression,sortdirection,datakeynames,pagecount。我不认为TextBox使用控件状态。
仅将基本属性存储在控件状态中。我不知道攻击另一个控件的状态会有什么好处,因为在控制状态下加载和保存的实际值必须在受保护的LoadControlState和SaveControLState方法中完成。如果启用,值不会自动保存在控制状态。