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中时,它似乎不起作用。
任何想法将不胜感激。
嗨Gidanmx2,谢谢你的评论。我尝试删除脚本标记,并将最后一个参数设置为true,但它似乎仍然没有工作。我也尝试做反之亦然(保留脚本标记,将最后一个参数设置为false),但这似乎不起作用。我将继续调查这个问题是什么:) –