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),但這似乎不起作用。我將繼續調查這個問題是什麼:) –