2017-05-08 50 views
0

我想通過單擊按鈕來更新aspx頁面上的一個部分,我希望在沒有任何回發的情況下完成此操作。使用腳本管理器註冊客戶端腳本塊

我放在母版頁中,像這樣一個ScriptManager:

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

,我想一個JavaScript註冊到使用ScriptManager.RegisterClientScriptBlock按鈕點擊一個文字控制。下面是我

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
     <asp:Panel ID="Panel_Map" runat="server" Visible="false"> 
      <telerik:RadScriptBlock ID="RadScriptBlock_Map" runat="server"> 
       <div id="mapArea" style="width: 1000px; height: 1000px"></div> 
       <asp:Literal ID="Literal1" runat="server" /> 
      </telerik:RadScriptBlock> 
     </asp:Panel> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="RadButton1" EventName="Click" /> 
    </Triggers> 
</asp:UpdatePanel> 
<telerik:RadButton ID="RadButton1" runat="server" OnClick="RadButton_Search_Click" Text="Search" OnClientClicking="validateSearchFilter"></telerik:RadButton> 

代碼隱藏

protected void RadButton_Search_Click(object sender, EventArgs e) 
{ 
    this.Testing(); 
} 

Protected void Testing() 
{ 
    Literal1.Text = @" 
    <script type='text/javascript'> 
     var user = 'http://www.robotwoods.com/dev/misc/bluecircle.png'; 

     function initialize() { 
      var mapOptions = { 
       center: new google.maps.LatLng(" + userLongitude + ", " + userLatitude + "), " + @" 
       zoom: 15, 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
      }; 

      var myMap = new google.maps.Map(document.getElementById('mapArea'), mapOptions); 

      var userMarker = new google.maps.Marker({ 
       position: new google.maps.LatLng(" + userLongitude + ", " + userLatitude + "), " + @" 
       map: myMap, 
       icon: user 
      });" + markers + @"} " + "\n window.onload = initialize; " + @" 
    </script>"; 

    // Make Panel_Map visible 
    Panel_Map.Visible = true; 
    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "testing", Literal1.Text, true); 
} 

我一直在使用ClientScript.RegisterClientScriptBlock也試過,但沒有工作的aspx頁面上。我也嘗試提醒隨機文本取代'Literal1.Text',但這似乎也不起作用。我已經測試了上面的JavaScript代碼並且沒有任何問題,但是當我將它包裝在UpdatePanel中時,它似乎不起作用。

任何想法將不勝感激。

回答

0

RegisterClientScriptBlock最後一個布爾參數來自動添加<script>標籤你,但在這種情況下,你已經添加腳本字符串裏的標籤,那麼你必須最後一個參數設置爲false或刪除腳本標籤從你的字符串。

+0

嗨Gidanmx2,謝謝你的評論。我嘗試刪除腳本標記,並將最後一個參數設置爲true,但它似乎仍然沒有工作。我也嘗試做反之亦然(保留腳本標記,將最後一個參數設置爲false),但這似乎不起作用。我將繼續調查這個問題是什麼:) –