1

過去に更新パネルとタイマーを使用して、ASP.net を使用してスライドショーを作成しました。代わりに、または画像を回転させることを除いて、同じことをしたいと思います.ascxファイルを回転させたいです。これは可能ですか?これは私がこれまでに持っているものですが、コード ビハインド ファイルから .ascx にアクセスする方法に行き詰まっています。

<asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="SlideShow" runat="server" UpdateMode="Always">
        <ContentTemplate>
            <img runat="server" id="SlideShowImage1" src="~/Controls/Testimonials.ascx" alt="Testimonial" />
            <asp:Label runat="server" ID="SlideShowText" Text="First Slide" />
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="SlideShowTimer" EventName="Tick" />
        </Triggers>
    </asp:UpdatePanel>
    <asp:Timer ID="SlideShowTimer" runat="server" Interval="15000" OnTick="SlideShowTimer_Tick">
    </asp:Timer>

コードビハインド:

    protected void SlideShowTimer_Tick(object sender, EventArgs e)
    {
        DateTime later = DateTime.Now.AddSeconds(.5);
        while (DateTime.Now < later)
        {

        }

        this.SlideShowImage1.Src = RandomImageName();
        this.SlideShowText.Text = this.SlideShowImage1.Src.ToString();

    }
    private string RandomImageName()
    {

        Random rand = new Random();

        int RandomInt = rand.Next(0, 5);

        switch (RandomInt)
        {

            case 0:
                return "~/Controls/Testimonials.ascx";
                break;
            case 1:
                return "~/Controls/Testimonials2.ascx";
                break;
            case 2:
                return "~/Controls/Testimonials3.ascx";
                break;
            default:
                return "~/Controls/Testimonials4.ascx";
                break;

        }
    }

前もって感謝します!

4

1 に答える 1

1

1) 上部の aspx ファイルに以下のディレクティブを追加します

<%@ Register TagPrefix="uc1" TagName="ucLoanTerms" Src="ucLoanTerms.ascx" %>

(2)次に、ユーザーコントロールを動的にロードするフォームに以下を追加します

<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>

(3) コード ビハインド ファイルの Page_Load メソッドの次のコード、

PlaceHolder1.Controls.Clear();
ucLoanTerms lt = (ucLoanTerms) LoadControl("ucLoanInfo.ascx");
PlaceHolder1.Controls.Add(lt);

また、ユーザー コントロールの動的な読み込みに関するこちらの優れた記事も見つけました。

http://geekswithblogs.net/rashid/archive/2007/08/11/Loading-UserControl-Dynamically-in-UpdatePanel.aspx

于 2012-08-29T23:58:32.880 に答える