1

次のようなウィザード設定があります。

<asp:Wizard ID="Wizard1" runat="server" DisplaySideBar="false" onnextbuttonclick="OnNextButtonClick">
       <WizardSteps>
           <asp:WizardStep ID="WizardStep1" runat="server" Title="Step 1">
            <div class="content">
                <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
            </div>
           </asp:WizardStep>
           <asp:WizardStep ID="WizardStep2" runat="server" Title="Step 2">
               <div class="content">
                   <asp:PlaceHolder ID="PlaceHolder2" runat="server"></asp:PlaceHolder>
               </div>
           </asp:WizardStep> ...more

そして、そのページのプリレンダーで、次のようにコントロールを追加します。

protected void Wizard1_PreRender(object sender, EventArgs e)
{
    PlaceHolder1.Controls.Add(LoadControl("Control1.ascx"));
    PlaceHolder2.Controls.Add(LoadControl("Control2.ascx"));
    PlaceHolder3.Controls.Add(LoadControl("Control3.ascx"));
    ...more controls added
 }

.ascx コントロールには、次のようにアクセスしたい ajaxToolkit:TabContainer があります。

<ajaxToolkit:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="0">  
            <ajaxToolkit:TabPanel ID="TabPanel1" HeaderText="PRV 1" runat="server">

そこで私がやりたいことは、ウィザードが次のステップに進むのを止めて、ajaxtoolkit:Tabcontainer を次のタブに移動することです。次のように次のボタンにアクセスしています:

protected void OnNextButtonClick(object sender, WizardNavigationEventArgs e)
{
     if(Wizard1.ActiveStepIndex == 2)
     {
          e.Cancel = true;
          //get ajaxToolKit:tabcontrol here
     }
}

OnNextButtonClick 関数で TabControl にアクセスする方法についてのアイデアはありますか? これは asp.net Web アプリケーションです。

4

1 に答える 1

2

Page.GetControl("TabContainer1") を使用するか、ページからの深度がわからない場合は再帰メソッドを使用できます (.ascx で役立ちます)。

public static Control FindControlRecursive(Control container, string name)
{
    if ((container.ID != null) && (container.ID.Equals(name)))
        return container;

    foreach (Control ctrl in container.Controls)
    {
        Control foundCtrl = FindControlRecursive(ctrl, name);
        if (foundCtrl != null)
            return foundCtrl;
    }
    return null;
}

使用します FindControlRecursive(Page, "TabContainer1")

于 2012-06-13T14:17:38.660 に答える