C# C委托事件处理程序SelectedIndexChanged
我想将另一个值传递给方法LeCmb\u Statut\u SelectedIndexChanged,如何继续 我有密码:C# C委托事件处理程序SelectedIndexChanged,c#,.net,combobox,drop-down-menu,selectedindexchanged,C#,.net,Combobox,Drop Down Menu,Selectedindexchanged,我想将另一个值传递给方法LeCmb\u Statut\u SelectedIndexChanged,如何继续 我有密码: SqlDataReader reader = comm.ExecuteReader(); while (reader.Read()) { ... DropDownList LeCmb_Statut = new DropDownList(); string tempLabel = reader["LIBELLE"].ToString(); string
SqlDataReader reader = comm.ExecuteReader();
while (reader.Read())
{
...
DropDownList LeCmb_Statut = new DropDownList();
string tempLabel = reader["LIBELLE"].ToString();
string templabelVeh = reader["LIBVEH"].ToString()
}
如何将这些临时变量传递到LeCmb\u Statut\u SelectedIndexChanged
您可以使用dropdownlist的Tag属性。 首先,创建一个简单的DTO:
public class LabelDTO
{
public string Label {get;set;}
public string LabelVeh {get;set;}
}
然后:
然后在LeCmb\u Status\u选择的索引中更改:
LeCmb_Statut_SelectedIndexChanged (object sender, System.EventArgs e)
{
LabelDTO labelDTO= ((DropDownList)sender).Tag as LabelDTO ;
if (labelDTO!=null)
{
///here you can use the label and labelVeh properties.
}
}
您可以使用dropdownlist的Tag属性。 首先,创建一个简单的DTO:
public class LabelDTO
{
public string Label {get;set;}
public string LabelVeh {get;set;}
}
然后:
然后在LeCmb\u Status\u选择的索引中更改:
LeCmb_Statut_SelectedIndexChanged (object sender, System.EventArgs e)
{
LabelDTO labelDTO= ((DropDownList)sender).Tag as LabelDTO ;
if (labelDTO!=null)
{
///here you can use the label and labelVeh properties.
}
}
您可以使用匿名方法捕获它们:
string tempLabel = reader["LIBELLE"].ToString();
string templabelVeh = reader["LIBVEH"].ToString()
LeCmb_Statut.SelectedIndexChanged += delegate {
// do something fun with tempLabel and templabelVeh
};
对于较小的块或较长的代码,这可以是内联的-只需传递给一个方法:
string tempLabel = reader["LIBELLE"].ToString();
string templabelVeh = reader["LIBVEH"].ToString()
LeCmb_Statut.SelectedIndexChanged += delegate {
DoSomethingFun(tempLabel,templabelVeh);
};
或者,如果您需要发件人/参数:
string tempLabel = reader["LIBELLE"].ToString();
string templabelVeh = reader["LIBVEH"].ToString()
LeCmb_Statut.SelectedIndexChanged += delegate(object sender, EventArgs args) {
DoSomethingFun(sender,args,tempLabel,templabelVeh);
};
或在C 3.0中:
string tempLabel = reader["LIBELLE"].ToString();
string templabelVeh = reader["LIBVEH"].ToString()
LeCmb_Statut.SelectedIndexChanged += (sender, args) =>
DoSomethingFun(sender,args,tempLabel,templabelVeh);
您可以使用匿名方法捕获它们:
string tempLabel = reader["LIBELLE"].ToString();
string templabelVeh = reader["LIBVEH"].ToString()
LeCmb_Statut.SelectedIndexChanged += delegate {
// do something fun with tempLabel and templabelVeh
};
对于较小的块或较长的代码,这可以是内联的-只需传递给一个方法:
string tempLabel = reader["LIBELLE"].ToString();
string templabelVeh = reader["LIBVEH"].ToString()
LeCmb_Statut.SelectedIndexChanged += delegate {
DoSomethingFun(tempLabel,templabelVeh);
};
或者,如果您需要发件人/参数:
string tempLabel = reader["LIBELLE"].ToString();
string templabelVeh = reader["LIBVEH"].ToString()
LeCmb_Statut.SelectedIndexChanged += delegate(object sender, EventArgs args) {
DoSomethingFun(sender,args,tempLabel,templabelVeh);
};
或在C 3.0中:
string tempLabel = reader["LIBELLE"].ToString();
string templabelVeh = reader["LIBVEH"].ToString()
LeCmb_Statut.SelectedIndexChanged += (sender, args) =>
DoSomethingFun(sender,args,tempLabel,templabelVeh);
@user609511:请详细描述您拥有的内容以及您希望达到的目标。目前,您正在为每条记录创建一个新的DropDownList。将一个项目添加到预先存在的DropDownList中不是更有意义吗?@user609511:请详细描述您拥有的内容以及您希望访问的内容。目前,您正在为每个记录创建一个新的DropDownList。将一个项目添加到预先存在的DropDownList中不是更有意义吗?