2012-09-05 73 views
0

我創建的用戶控制的用戶控制:添加包含一個Ajax工具包對象

<ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"> 
</ajaxToolkit:ToolkitScriptManager> 

    <table> 
    <tr> 
    <td> 
     Start Date 
    </td> 
    <td> 
     <asp:TextBox ID="StartDateTextBox" runat="server"></asp:TextBox> 
     <ajaxToolkit:CalendarExtender ID="StartCal" OnClientDateSelectionChanged="dateSelectionChanged" 
       runat="server" TargetControlID="StartDateTextBox"> 
     </ajaxToolkit:CalendarExtender> 
     <asp:Button ID="PostBackButton" runat="server" Text="Button" Style="display: none" 
       OnClick="PostBackButton_Click" /> 
    </td> 
    <td> 
     End Date 
    </td> 
    <td> 
     <asp:TextBox ID="EndDateTextBox" runat="server"></asp:TextBox> 

     <ajaxToolkit:CalendarExtender ID="EndCal" runat="server" OnClientDateSelectionChanged="dateSelectionChanged" 
       TargetControlID="EndDateTextBox"> 
     </ajaxToolkit:CalendarExtender> 
    </td> 
    </tr> 
    <tr> 
    <td colspan="4"> 
     <asp:Chart ID="PlantRestarts" runat="server" Height="400px" Width="800px"> 
     <Series> 
      <asp:Series Name="Series1" ChartType="Bar" Palette="BrightPastel" ChartArea="MainChartArea"> 
      </asp:Series> 
     </Series> 
     <ChartAreas> 
      <asp:ChartArea Name="MainChartArea" Area3DStyle-Enable3D="true"> 
      </asp:ChartArea> 
     </ChartAreas> 
     </asp:Chart> 
    </td> 
    </tr> 
    <tr> 
    <td align="center" colspan="4"> 
     <asp:Button ID="PlantRestartsButton" runat="server" Text="Export To CSV" CommandName="Export" 
       CommandArgument="PlantRestarts" OnClick="PlantRestartAttemptsButton_Click" /> 
    </td> 
    </tr> 
</table> 

我有一個使用這種控制一個簡單的頁面:

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="CustomTestPage.aspx.cs" Inherits="TrendReporting.CustomTestPage" %> 
<%@ Register TagPrefix="UserCtrl" TagName="CustomControl" Src="Controls/TestUserControl.ascx" %> 

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> 
<script type="text/javascript"> 

    function getSlide() { 
     var i, x, y, ARRcookies = document.cookie.split(";"); 
     for (i = 0; i < ARRcookies.length; i++) { 
      x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("=")); 
      y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1); 
      x = x.replace(/^\s+|\s+$/g, ""); 
      if (x == "slide") { 
       return y; 
      } 
     } 
    } 

    var isPostBack = false; 
    var current = getSlide(); 
    var slider2 = ['Books', 'Attempts', 'Attempt Book Comparison', 'Business Unit', 'Trend']; 
    function formatText(index, panel) { 
     return slider2[index - 1]; 
    } 

    $(function() { 

     if (!isPostBack) { 
      slide = 1; 
     } 

     $('#slider2').anythingSlider({ 

      width: 800,  // if resizeContent is false, this is the default width if panel size is not defined 
      height: 400,  // if resizeContent is false, this is the default height if panel size is not defined 
      buildArrows: true, 
      startPanel: current, 
      resizeContents: false,  // If true, solitary images/objects in the panel will expand to fit the viewport 
      delay: 7000, //7 seconds before transitioning to next slide 
      autoPlay: true,  // This turns off the entire slideshow FUNCTIONALY, not just if it starts running or not 
      navigationFormatter: formatText, // Format navigation labels with text 
      forwardText: "&raquo;", 
      backText: "&laquo;", 
      onSlideComplete: function() { 
       document.cookie = "slide=" + $('#slider2').data('AnythingSlider').currentPage; 
      } 
     }) 
    }); 
</script> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 
<ul id="slider2"> 
<li class="panel1" style="width: 800px; height: 400px"> 
    <UserCtrl:CustomControl runat="server" /> 
</li> 
</ul> 

當我加載該頁面,根本沒有任何顯示,只是一個空白頁面。問題是它將腳本標籤注入到ajax toolscriptmanager的< li>標籤中。源代碼顯示如下:

<ul id="slider2"> 
<li class="panel1" style="width: 800px; height: 400px"> 
    <script type="text/javascript"> 
//<![CDATA[ 
    Sys.WebForms.PageRequestManager._initialize('ctl00$MainContent$ctl00$ToolkitScriptManager1', 'ctl01', [], [], [], 90, 'ctl00'); 
//]]> 
</script> 

<table> 
    <tr> 
     <td> 
      Start Date 
     </td> 
     <td> 
      <input name="ctl00$MainContent$ctl00$StartDateTextBox" type="text" id="MainContent_ctl00_StartDateTextBox" /> 

      <input type="submit" name="ctl00$MainContent$ctl00$PostBackButton" value="Button" id="MainContent_ctl00_PostBackButton" style="display: none" /> 
     </td> 
     <td> 
      End Date 
     </td> 
     <td> 
      <input name="ctl00$MainContent$ctl00$EndDateTextBox" type="text" id="MainContent_ctl00_EndDateTextBox" /> 


     </td> 
    </tr> 
    <tr> 
     <td colspan="4"> 
      <img id="MainContent_ctl00_PlantRestarts" src="/ChartImg.axd?i=chart_bbf484b6c44a4372abba2bb2591a3fb6_5.png&amp;g=dbfe90c2079e4257937543c8dc544c65" alt="" style="height:400px;width:800px;border-width:0px;" /> 
     </td> 
    </tr> 
    <tr> 
     <td align="center" colspan="4"> 
      <input type="submit" name="ctl00$MainContent$ctl00$PlantRestartsButton" value="Export To CSV" id="MainContent_ctl00_PlantRestartsButton" /> 
     </td> 
    </tr> 
</table> 





</li> 
</ul> 

有沒有辦法解決這個問題呢?

回答

1

我不使用ToolkitScriptManager,但我經常在我的網站上使用常規ScriptManager來實現ajax功能。使用ScriptManager時,我通常將它放在MasterPage中,因爲在任何特定頁面上只能有一個實例,並且只需將它放在表單標籤內,就不會影響任何HTML呈現。