我的母版页中有一个广播列表,当我选择其中一个时,它们会触发一个事件。
现在,此事件不受我的母版页控制,而是由我的内容页面控制。 我的问题是,是否有可能以某种方式将主页面方法中的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 :(得分: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)