2011-05-13 58 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 = 「有條件的」。