2017-05-08 97 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),但这似乎不起作用。我将继续调查这个问题是什么:) –