我有一段代码:
protected void Page_Load(object sender, EventArgs e)
{
_SearchResult.GridViewChanged += _SearchResult_GridViewChanged;
}
public Control GvControls { get; set; }
protected void _SearchResult_GridViewChanged(object sender, Orders.GridViewChangedEventArgs e)
{
this.GvControls = e.GControl;
}
protected void export_ServerClick()
{
new ExportGridView(this.GvControls,"report");
}
一个控件生成带有事件arg的事件并通过arg推送控件,然后另一个(此)控件使用此arg 进行一些俯卧撑
我什么时候尝试推CCD_ 1属性CCD_。为什么会发生这种事。
ThankX
所有变量(甚至控件)都在页面生命周期结束时处理。这就是为什么必须在回发时重新创建所有动态创建的控件的原因。出于同样的原因,您必须使用所需值重新初始化变量。
因此,我假设GridViewChanged
-事件首先被触发。然后,用户单击触发export_ServerClick
事件处理程序的另一个按钮。在这一点上,字段GvControls
具有其默认值null
的增益。
您必须将该值保存在某个位置,例如Session
中。
管理ASP.NET应用程序中持久用户状态的九个选项
然而,我认为你不应该坚持控制本身。也许存储控件的ID就足够了。也许在导出之前从数据源再次加载它更好,原因有两个:
- 显示的数据可能已经过时,因为其他用户已经更改了它
- 你不需要在控件中摆弄字符串,但你有原始值