2014-12-24 41 views
0

我的主页面有一个广播列表,当我选择其中一个时,它们激发一个事件。从主页面到内容页面传递int和字符串值

此事件不是由我的母版页控制,而是由我的内容页面控制。 我的问题是,是否有可能以某种方式从主页面方法向内容页面方法传递int/Strings。

P.S我想通过INT I内容页面的方法在这种情况下

这是我怎么潮起来。

主网页代码来处理事件

public event EventHandler Master_Save; 
    ... 
public void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    int i=RadioButtonList1.SelectedIndex;   
    if(Master_Save!=null) 
    { Master_Save(this, EventArgs.Empty); } 
} 

和我的内容页面的代码来处理该事件

protected override void OnPreInit(EventArgs e) 
{ 
    base.OnPreInit(e); 
    (this.Page.Master as Pages_MasterPage).Master_Save += new EventHandler(ContentPage_Save); 
} 

private void ContentPage_Save(object sender, EventArgs e) 
{ 
    //Code that changes a query 

} 
+0

http://stackoverflow.com/q/17783165/532498 – Pleun

回答

0

当然,你可以,只是定义一个自定义事件的args类以及与其参数化的事件:

public class MasterSaveEventArgs : EventArgs 
{ 
    public int Index { get; private set; } 
    public MasterSaveEventArgs(int index) 
    { 
     this.Index = index; 
    } 
} 

,然后只用它:

public event EventHandler<MasterSaveEventArgs> Master_Save; 
... 
{ Master_Save(this, new MasterSaveEventArgs(i)); } 
... 
(this.Page.Master as Pages_MasterPage).Master_Save += ContentPage_Save; 
// notice the shortened syntax here 
... 
private void ContentPage_Save(object sender, MasterSaveEventArgs e) 
+0

感谢您的回复。但是,我的PreInt方法在我的EventHandler行上确实存在错误。你能帮我算出 – user3070259

+0

@ user3070259,编辑答案。对于未来的情况,指定*你遇到什么错误*总是有用的,否则你会让其他人猜测 – Andrei

+0

谢谢你非常解决我自己。 – user3070259