ページ読み込みイベントを埋めるドロップダウンがあります。
private void FillSponsor()
{
ddlSponsor.DataSource = Db.VCT_SPONSORs.Where(x => x.IS_ACTIVE.GetValueOrDefault() && x.IS_APPROVED.GetValueOrDefault());
ddlSponsor.DataBind();
}
今私が欲しいのは、他のドロップダウンを上記のドロップダウンの最初の値にバインドすることです。私の2番目のドロップダウンは次のとおりです。
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イベントを呼び出す方法です。私の両方のドロップダウンは更新パネルにあります。
メソッドをどのように呼び出すのですか?
ddlSponsor_SelectedIndexChanged(this, EventArgs.Empty);
代わりに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"));
}
あなたの主な問題は、別々の更新パネルにコントロールがあることだと思います。
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"を忘れないでください。