1

以下のコードを使用して、divタグ内のWebページを開きます。

 $(document).ready(function () {
                $("#popupContact").load("Wizard.aspx");

            });

Wizard.aspxページには、telerikRadTabStripコントロールがあります。ページが読み込まれると、タブコントロールは問題なく表示されますが、タブページに移動できません(タブが機能していません)。

jqueryコードなしでページWizard.aspxをロードすると、すべてが正常に機能します。

<telerik:RadScriptManager runat="server" ID="RadScriptManager1" >
    </telerik:RadScriptManager>
    <div class="exampleWrapper" style="background-repeat: repeat;" >
    <a id="popupContactClose"><b>X</b></a>
   <b>Fill the Form</b>
        <telerik:RadAjaxLoadingPanel runat="server" ID="LoadingPanel1">
        </telerik:RadAjaxLoadingPanel>
        <telerik:RadAjaxPanel runat="server" ID="RadAjaxPanel1" LoadingPanelID="LoadingPanel1"
            Height="100%">
            <div style="float: left; width: 500px; ">
                <telerik:RadTabStrip ID="RadTabStrip1" SelectedIndex="0" runat="server" MultiPageID="RadMultiPage1"
                    Skin="Sunset" CssClass="tabStrip">
                </telerik:RadTabStrip>
                <telerik:RadMultiPage ID="RadMultiPage1" runat="server" SelectedIndex="0" OnPageViewCreated="RadMultiPage1_PageViewCreated"
                    CssClass="multiPage">
                </telerik:RadMultiPage>
            </div>
            <div id="specialdiv" class="previewWrapper" style="background-image: url('images/preview.jpg')">
                <uc1:PreviewCS ID="previewControl" runat="server"></uc1:PreviewCS>
            </div>
        </telerik:RadAjaxPanel>

    </div> 
4

4 に答える 4

7

jQuery.load()レンダリングされた HTML 出力をページから取得し、この HTML をセレクター要素に挿入します。

サーバーからデータをロードし、返された HTML を一致した要素に配置します。

あなたの場合、レンダリングされた HTMLはdivWizard.aspxにネストされています。#popupContact

この Telerik コントロールが使用するサーバー側のイベントなどはポストバックされWizard.aspxないため、期待どおりに動作しません。


ポストバックを必要とする ASP.NET WebForms およびコントロールを使用する場合、Wizard.aspxコードをカスタム ユーザー コントロール (例: Wizard.ascx) に追加し、これを AJAX で呼び出すことをお勧めしますUpdatePanel

これにより、すべてのポストバックなどがViewState.


別の方法として (これは私が個人的に採用するアプローチです)、Web コントロールの使用を削除し、ViewState.

私はその正確な Telerik コントロールに精通していませんが、Telerik を使用せずに HTML と jQuery を使用してこれを行う方法があると確信しています。次にjQuery.load()、JavaScript で任意のイベント ハンドラーを使用して再アタッチできます。

これにより、より軽く、より制御可能な出力が得られます。

于 2013-02-12T12:12:23.430 に答える
1

が部分的なページでない限りWizard.aspx、 を呼び出す$("#popupContact").load("Wizard.aspx");と、HTML ドキュメント全体が にロードされdiv、完全に無効なマークアップが作成されます。無効なマークアップは、機能しない他の多くのものにカスケードする傾向があります...

挿入する前に、結果からフラグメントを引き出すことができることに注意し.load()てください。「ウィザード」コントロールのコンテナーの ID を持つ URL フラグメントを、指定した URL に追加します.load()

$("#popupContact").load("Wizard.aspx #wizard_or_whatever_you_named_this");

ただし、そのページに埋め込まれた CSS または JavaScript はすべて失われます。

于 2013-02-12T12:16:10.633 に答える
0

Jqueryカラーボックスはついに私のために働いた。iframeを使用して外部ウィンドウをロードしており、問題は発生しませんでした。

http://www.jacklmoore.com/colorbox/example1/

于 2013-02-13T04:55:23.623 に答える
0

iframeを使用できます。

iframe:タグはインライン フレームを指定します。インライン フレームは、現在の HTML ドキュメント内に別のドキュメントを埋め込むために使用されます。

例えば。:

<iframe src="Wizard.aspx" id="ifrmWizard"></iframe> 

$(document).ready(function () {
     $("#ifrmWizard").attr("src","Wizard.aspx");
});
于 2013-02-12T12:15:36.550 に答える