我有一个填充页面加载事件的下拉列表。
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"));
}
我的问题是如何从FillSponsor方法调用ddlSponsor_SelectedIndexChanged事件。我的两个下拉列表都在更新面板中。
答案 0 :(得分:23)
你的意思是你怎么称呼这个方法?
ddlSponsor_SelectedIndexChanged(this, EventArgs.Empty);
答案 1 :(得分:1)
您可以使用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"));
}
答案 2 :(得分:0)
我认为您的主要问题是在单独的更新面板中进行控制。
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 =“Conditional”。