まず、この質問の長さについてお詫びします!
私はいくつかのWebユーザーコントロールを備えたページを持っていますが、そのうちの2つはある程度相互依存しています。理想的な世界では、それらは1つのコントロールである可能性がありますが、さまざまな理由から、2つである必要があります。
以下に説明するように、別のコントロールのドロップダウンリストのアクションに基づいて、コントロールの1つで更新パネルを更新する必要があります。
この目的のために、コントロールJobControlとCallControlを呼び出します。JobControlには、AJAXControlToolkitのカスケードドロップダウンリストの一部であるドロップダウンリストが含まれています。このドロップダウンでインデックスの変更が選択されたら、CallControlのコントロールパネルを更新します。
CallControlは、更新パネルを次のように公開します。
public UpdatePanel UpdatePanel
{
get { return updCall; }
}
JobControlにはパブリックメンバーがいますAssociatedCallControl
private ServiceCallControl associatedCallControl;
public ServiceCallControl AssociatedCallControl
{
get { return associatedCallControl; }
set { associatedCallControl = value; }
}
次に、コントロールを含むページのOnLoadイベントで2つが関連付けられます。
このSO質問:更新パネルエラー:ID「xxx」のコントロールがUpdatePanelで見つかりませんでした。これにより、JobControlのonloadイベントでこれを試すことができました。
if (associatedCallControl != null)
{
AsyncPostBackTrigger trig = new AsyncPostBackTrigger();
string s = ddCallGroup.ClientID;
//ddCallGroup is the dropdown I want to trigger the update of the CallControl
trig.ControlID = ddCallGroup.ClientID; //Also Tried ddCallGroup.ID
trig.EventName = "CallGroupChanged";
associatedCallControl.UpdatePanel.Triggers.Add(trig);
}
以下もJobControlに追加されました
public void CallGroupChanged(object sender, EventArgs e)
{
//Stuff to update the CallControl panel including calling update();
associatedCallControl.RefreshMehods(int.Parse(ddCallGroup.SelectedValue));
}
このすべての後にホバーして、私はまだ得ます A control with ID 'TabContainer1_tabJob_ctrlJob_ddCallGroup' could not be found for the trigger in UpdatePanel 'updCall'.
私は不可能を試みていますか?私はこれを間違った方法で行っているのですか、それとも何かを逃しただけですか?