0

Asp.net 4 C# 2010 を使用しています。ajaxtoolkit tabcontainer を使用する 2 つのタブがあり、JavaScript を使用して内部の要素に対処したいと考えています。

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>

<ajaxToolkit:TabContainer runat="server" ScrollBars="Auto" ActiveTabIndex="0"        
    OnDemand="true" AutoPostBack="false" TabStripPlacement="Top"
    CssClass="ajax__tab_xp" VerticalStripWidth="120px" ID="TabContainer">

        <ajaxToolkit:TabPanel ID="canvas1Tab" runat="server" Enabled="true"
    ScrollBars="Auto" OnDemandMode="Once">
     <ContentTemplate>

   <canvas id="canvas1" width="300" height="300" />
    Your browser doesn't support html 5 or Canvas. Please upgrade to the lasted 
             </canvas>

    </ContentTemplate>
</ajaxToolkit:TabPanel>

        <ajaxToolkit:TabPanel ID="canvas2Tab" runat="server" Enabled="true"
    ScrollBars="Auto" OnDemandMode="Once">
     <ContentTemplate>

   <canvas id="canvas2" width="300" height="300" />
    Your browser doesn't support html 5 or Canvas. Please upgrade to the lasted 
             </canvas>

    </ContentTemplate>
</ajaxToolkit:TabPanel>
</ajaxToolkit:TabContainer>

ここで、javaScript を使用して、タブ内のキャンバスにいくつかのものを描画したいと考えています。ページが読み込まれると、最初のタブが選択済みになります。

$(document).ready で 2 つのキャンバスに対処しようとしています。

JavaScript コマンドを使用するたびdocument.getElementByIdに、最初のキャンバス (タブが選択されているもの) が見つかりますが、もう 1 つのキャンバス (canvas2) でエラーが発生します。

記録のために、私は asp-control を使用してこのことを確認しました (ただし、必要なものではありません)。2番目のタブにasp:TextBoxを追加してから使用しようとしましたdocument.getElementById("<%=TextBox1.ClientID%>")が、それは私に与えます

Uncaught ReferenceError: MainContent_TabContainer_canvas2Tab_TextBox1 が定義されていません

私は自分自身を明確にしたことを願っています。

これを機能させるにはどうすればよいですか?

4

1 に答える 1

0

すべてのタブを一度にロードする方法を見つけたと思います。ajaxToolkit:TabContainer にはプロパティ OnDemand があります。

OnDemand - Whether to render/load tabs onDemand or all at page load

OnDemand を true に設定すると、各タブにプロパティ OnDemandMode を追加できます。

OnDemandMode - When container's onDemand is true then whether to load tab - Always, Once, None

キーは設定することです

OnDemand=false これにより、すべてのタブが一度に読み込まれ、クリックする必要がなくなります。

于 2012-10-17T08:08:20.720 に答える