我有一个函数RadioButtonList_SelectedIndexChanged
,在这个函数中我创建了一个列表,我想将List传递给另一个函数:DropDownList_SelectedIndexChanged(object sender, EventArgs e)
我怎样才能做到这一点?
答案 0 :(得分:1)
在后面的代码中创建私有List变量,将数据从radiobuttonchanged上的数据库检索到该变量,然后在dropdownlist_selectedindexchanged函数中使用该变量。我认为这比使用(object sender,EventArgs e)操作更好;
private List list1;
答案 1 :(得分:1)
您有两种可能的解决方案:
您可以利用事件处理程序获取object
参数,该参数是事件的发送者。您可以使用此参数传递列表:
DropDownList_SelectedIndexChanged(object sender, EventArgs e)
{
// You'll have to downcast the object
List<string> myList = sender as List<string>;
}
您可以从单选按钮事件处理程序中调用它:
RadioButtonList_SelectedIndexChanged(obejct sender, EventArgs e)
{
// ...
DropDownList_SelectedIndexChanged(yourCreatedList, null);
}
这不推荐使用,因为这个参数应该保存发送者对象,在你的情况下,它是你的单选按钮,而不是列表。
您可以创建自己的EventArgs
实施:
public class DropDownListEventArgs : EventArgs
{
public List<string> List;
}
然后,您应该修改事件处理程序签名:
DropDownList_SelectedIndexChanged(object sender, DropDownListEventArgs e)
{
List<string> myList = e.List;
}
您可以从单选按钮事件处理程序中调用它:
RadioButtonList_SelectedIndexChanged(obejct sender, EventArgs e)
{
// ...
DropDownList_SelectedIndexChanged(yourRadioButton, new DropDownListEventArgs()
{
List = yourCreatedList
});
}
P.S。:我假设您的列表属于List<string>
类型,但它可以是任何类型。