使用js时,无法在ajaxtoolkit tabcontainer的选项卡中找到html元素

时间:2012-10-17 07:07:44

标签: javascript html5 canvas tabcontainer

我使用的是Asp.net 4 C#2010。 我有两个使用ajaxtoolkit tabcontainer的标签,我想用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在选项卡内的画布上绘制一些东西。 页面加载时,第一个Tab是Selected。

我尝试在$(document).ready。

上解决这两个画布

每当使用JavaScript命令document.getElementById时,会找到第一个画布(选中它的选项卡),但另一个画布(canvas2)会出现错误。

仅仅为了记录,我已经使用asp-control检查了这个东西(虽然这不是我需要的)。 我尝试将asp:TextBox添加到第二个选项卡,然后使用document.getElementById("<%=TextBox1.ClientID%>"),但它给了我

  

未捕获的ReferenceError:未定义MainContent_TabContainer_canvas2Tab_TextBox1

我希望我能说清楚。

我可以做些什么来完成这项工作?

1 个答案:

答案 0 :(得分:0)

我想我找到了一种方法一次加载所有标签。 ajaxToolkit:TabContainer有一个Property 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

关键是设置

  

按需=假   这样可以立即加载所有选项卡,而不是单击它们