我有一个带有用户控件的 asp.net 4 页面。当用户在用户控件内的网格中选择一个值时,我想使用网格中的值更新数据源(在我的情况下为 LINQ 数据源)的 WHERE 子句。数据源对象在父页面中。页面生命周期在网格的 item 命令方法执行之前加载父页面,因此我无法获取所选值。
如何才能做到这一点?如果可能的话,我想在服务器端做这一切。
我有一个带有用户控件的 asp.net 4 页面。当用户在用户控件内的网格中选择一个值时,我想使用网格中的值更新数据源(在我的情况下为 LINQ 数据源)的 WHERE 子句。数据源对象在父页面中。页面生命周期在网格的 item 命令方法执行之前加载父页面,因此我无法获取所选值。
如何才能做到这一点?如果可能的话,我想在服务器端做这一切。
在子页面中创建一个事件,如下所示:
public event EventHandler DataChanged;
在子页面中,在适当的时候这样调用它:
if (DataChanged != null)
DataChanged(sender, new EventArgs());
然后在父页面中,创建一个要调用的方法并像这样附加它:
protected void DoSomething(object sender, EventArgs e)
{
}
child.DataChanged += DoSomething;
哦,是的,我差点忘了。我认为您必须在 Page_Init() 中设置事件关系,而不是等待 Page_Load()。