試圖建立一個小圖表(asp控制對象)的頁面,然後當我們點擊圖像時,彈出一個樣式的jquery模式/對話框顯示一個更大版本的圖表。我試圖通過執行以下操作來完成此操作,但我的模式顯示爲空白。
我的代碼在'Enlarge'函數後面被調用(當我調試時,Popup正在設置Chart1的值)。我猜我的更新面板是錯誤的?我將在完成這些操作後將圖表移動到自定義控件中,但是如果不將「ok」返回到「myhide」,可能還有更好的方法嗎?asp.net圖表裏面的一個jQuery對話框
的.aspx
<div class="chart-div" onclick="JScript_EnlargeChart('Chart1')">
<asp:chart id="Chart1" runat="server"></asp:chart>
</div>
<div id="PopUp">
<form runat="server" id="form1">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Chart runat="server" ID="PopUpChart"></asp:Chart>
</ContentTemplate>
</asp:UpdatePanel>
</form>
<span id="myhide" style="display:none"></span>
</div>
的javascript
<script type="text/jscript">
$(document).ready(function() {
$('#PopUp').hide(); //hide on startup
});
function JScript_EnlargeChart(x) { //ajax call to create a dialog box to enlarge a given chart
$('#myhide').load('mypage.aspx?Enlarge=' + x); //refresh
$('#PopUp').modal({ //do popup
title: 'Enlarged Chart',
height: 400,
width: 700,
buttons: {
'Close': function (win) { win.closeModal(); }
}
});
};
</script>
代碼後面
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsNothing(Request.QueryString("Enlarge")) Then
Response.Write(Enlarge(Request.QueryString("Enlarge")))
Response.Flush()
Response.End()
Else
GenerateCharts()
End If
End Sub
Function Enlarge(ByVal chartid As String) As String
If chartid = "Chart1" Then
PopUpChart = Chart1
PopUpChart.Width = 412
PopUpChart.Height = 296
UpdatePanel1.Update()
ElseIf chartid = "Chart2" Then
PopUpChart = Chart2
UpdatePanel1.Update()
End If
Return "OK"
End Function
我正在考慮做圖像源ajax響應,正如您在帖子的後半部分中所說的那樣但認爲我會失去諸如深入瞭解數據點的選項和工具提示之類的東西。我肯定會在今天晚上給你第一個建議。謝謝! – user1272386 2012-03-15 22:13:47