[编辑]
在我的代码中无法直接调用以下内容:
void control_Changed(object sender, EventArgs e)
此函数循环通过DropDownListBox的Collection,每个DropDownListBox具有不同的Select_Change函数。另外它们不在同一页面中,它们的DropDownListBox集合来自不同用户对页面的控制。
我看到很多解决方案只是调用事件应该触发的函数。 但这不会影响我的情况。
我有一个代码,可以将数据映射到dropdownlistbox的集合,并为每个dropdownlistbox选择正确的dropdownlistbox项。
所以,有点像这样:
foreach (Control aControl in aControlCollection){
if (aControl.GetType() == typeof(RadComboBox))
{
bool FoundItem = false;
RadComboBox aComboBox = (aControl as RadComboBox);
foreach (RadComboBoxItem aComboItem in aComboBox.Items)
{
Debug.WriteLine("aComboItem " + aComboItem.Text + " Value" + aComboItem.Value);
if (aComboItem.Value.ToLower() == _dataObject.ToString().ToLower())
{
//aComboBox.SelectedIndex = aComboBox.Items.IndexOf(aComboItem);
aComboItem.Selected = true;
FoundItem = true;
~~~FIRE EVENT HERE~~~~~
//break;
}
else {
aComboItem.Selected = false;
}
}
if (!FoundItem)
{
RadComboBoxItem aComboItem = new RadComboBoxItem();
aComboItem.Value = _dataObject.ToString();
aComboItem.Text = _dataObject.ToString();
aComboBox.Items.Add(aComboItem);
aComboBox.SelectedIndex = aComboBox.Items.IndexOf(aComboItem);
}
}
}
}
通常在页面中,当用户选择第一个下拉框时,后面的第二个下拉框将根据第一个下拉框(来自第一个下拉框selectindexchange事件)生成正确的下拉列表项。
所以我想知道我是否可以通过编程方式触发DropDownListBox?
为了使其更加清晰,上面的函数是通过遍历页面上的所有DropDownListBox来调用,因此它们可以链接到不同的函数。
答案 0 :(得分:1)
Combobox_SelectedItem(null, null);
如果需要,您可以将所需的任何参数伪装到参数中。
答案 1 :(得分:0)
如果您使用传统的void control_Changed(object sender, EventArgs e)
代码......
if (aComboItem.Value.ToLower() == _dataObject.ToString().ToLower())
{
//aComboBox.SelectedIndex = aComboBox.Items.IndexOf(aComboItem);
aComboItem.Selected = true;
FoundItem = true;
control_Changed(aComboItem, new EventArgs());
}
void control_Changed(object sender, EventArgs e) {
// your code here
}