ウィザードの FinishNavigationTemplate 内にある Placeholder コントロール内にある LinkButton コントロールに対して PostBackTrigger を動的に設定しようとしています。通常のポストバックを行いたい理由は、ボタンがダウンロードを開始するためです。
私の(簡略化された)マークアップは次のようになります。
<asp:UpdatePanel runat="server" id="updPanel">
<ContentTemplate>
<asp:Wizard runat="server" ID="wizard">
<WizardSteps>
<asp:WizardStep runat="server" Title="Step 1">
Step data
</asp:WizardStep>
</WizardSteps>
<FinishNavigationTemplate>
<asp:Placeholder ID="phTest" Visible="false" runat="server">
<asp:LinkButton id="lbtnClick" runat="server" />
</asp:Placeholder>
</FinishNavigationTemplate>
</asp:Wizard>
</ContentTemplate>
</asp:UpdatePanel>
PlaceHolder Visible プロパティが true に設定されたら、Linkbutton id を PostBackTrigger として追加したくありません。
protected void Page_Load(object sender, System.EventArgs e)
{
PlaceHolder phTest = wizard.FindControl("FinishNavigationTemplateContainerID$phTest") as PlaceHolder;
phTest.Visible = true;
LinkButton lbtnClick = offerWizard.FindControl("FinishNavigationTemplateContainerID$lbtnClick") as LinkButton;
PostBackTrigger trigger = new PostBackTrigger();
trigger.ControlID = lbtnClick.ID;
//trigger.ControlID = lbtnClick.ClientID;
//trigger.ControlID = "FinishNavigationTemplateContainerID$lbtnClick";
updPanel.Triggers.Add(trigger);
}
これにより、「UpdatePanel 'updPanel' のトリガーに対して、ID 'lbtnClick' のコントロールが見つかりませんでした」という例外が発生します。マークアップをそのままにして、何らかの方法でリンクボタンに通常のポストバックをさせる方法はありますか?