2011-05-13 54 views
10

我有一个下拉式填充页面加载事件。调用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")); 
    } 

我的问题是如何从FillSponsor方法调用ddlSponsor_SelectedIndexChanged事件。我的两个下拉列表都在更新面板中。

回答

18

你的意思是你怎么称呼这个方法?

ddlSponsor_SelectedIndexChanged(this, EventArgs.Empty); 
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")); 
} 
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 = “有条件的”。