Call dropdownlist выбранный индекс изменен событие вручную

У меня есть выпадающий список, который заполняет событие загрузки страницы.

private void FillSponsor()
    {
        ddlSponsor.DataSource = Db.VCT_SPONSORs.Where(x => x.IS_ACTIVE.GetValueOrDefault() && x.IS_APPROVED.GetValueOrDefault());
        ddlSponsor.DataBind();
    }

Теперь я хочу связать другое выпадающее меню с первым значением вышеописанного выпадающего списка. мое второе выпадающее меню:

protected void ddlSponsor_SelectedIndexChanged(object sender, EventArgs e)
    {
        ddlDivision.DataSource = Db.VCT_SPONSOR_DIVISIONs.Where(x => x.SPONSOR_ID==SponsorID);
        ddlDivision.DataBind();
        ddlDivision.Items.Insert(0, new ListItem("All", "0"));
    }

Моя проблема заключается в том, как вызвать событие ddlSponsor_SelectedIndexChanged из метода FillSponsor. Мои выпадающие списки находятся в панелях обновления.

Ответ 1

Вы имеете в виду, как бы вы назвали метод?

ddlSponsor_SelectedIndexChanged(this, EventArgs.Empty);

Ответ 2

Вместо этого можно использовать событие DateBound. как...

protected void ddlSponsor_DataBound(object sender, EventArgs e)
{
    ddlDivision.DataSource = Db.VCT_SPONSOR_DIVISIONs.Where(x => x.SPONSOR_ID==SponsorID);
    ddlDivision.DataBind();
    ddlDivision.Items.Insert(0, new ListItem("All", "0"));
}

Ответ 3

Я считаю, что ваша основная проблема связана с управлением в отдельных панелях обновлений.

http://forums.asp.net/t/1426233.aspx

Пример кода из этой ссылки:

<asp:UpdatePanel runat="server" ID='asdsd' UpdateMode="Conditional">
 <ContentTemplate>
    ...DropDownList1...
</ContentTemplate>

<Triggers>
    <asp:AsyncPostBackTrigger ControlID='DropDownList2' EventName='SelectedIndexChanged' />
</Triggers>

Я верю, что вы следуете за AsyncPostBackTriggers, и не забывайте UpdateMode = "Условный".