0

我正在使用 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 在选项卡内的画布上绘制一些东西。页面加载时,第一个选项卡是已选择的选项卡。

我尝试在 $(document).ready 上处理这两个画布。

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

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

未捕获的 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 回答