如何使用updatePanel将值传递给部分回发的javascript

时间:2011-10-05 16:21:26

标签: c# javascript asp.net ajax

我在后面的代码中进行了一些查询,并将值设置为隐藏字段。如何将相同的值传递给Javascript。我不想使用会话,因为它没有更新部分页面加载。

这是我使用的代码:

 <script type="text/javascript">
    google.load("visualization", "1", { packages: ["corechart"] });
    google.setOnLoadCallback(drawChart);
     //Draw a pie
    function drawChart() {
        var data = new google.visualization.DataTable();
        data.addColumn('string', 'Task');
        data.addColumn('number', 'Hours per Day');
        data.addRows(4);

        data.setValue(1, 0, 'Not Received');
        data.setValue(1, 1, Value1);
        data.setValue(2, 0, 'Received');
        data.setValue(2, 1, Value2);
        data.setValue(3, 0, 'Read');
        data.setValue(3, 1, Value3);
        var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
        chart.draw(data, { width: 450,backgroundColor:'#DCDCDC', height: 300, title: 'Message Status' });

      // to draw a bar
        var progress1 = new RGraph.VProgress('progress1', Value4, 100);
        progress1.Set('chart.colors', [Value5]);
        progress1.Set('chart.tickmarks', false);
        progress1.Set('chart.margin', 3);
        progress1.Set('chart.tickmarks.inner', false);
        progress1.Set('chart.label.inner', true);
        progress1.Set('chart.gutter.left', 20);
        progress1.Set('chart.gutter.right', 40);
        progress1.Set('chart.tickmarks', true);
        progress1.Set('chart.units.post', '%');
        progress1.Draw();
        }           

最后一行中的值应该从隐藏字段传递。请给我一些代码示例。

2 个答案:

答案 0 :(得分:0)

如果您尝试在页面加载时将服务器端数据发送到客户端,您可以使用.NET ScriptManager类在页面上包含脚本或以内联方式执行(例如var value = <%= Value %> )。

以下是如何使用ScriptManager在响应中包含脚本的示例:

Page.ClientScript.RegisterStartupScript(Me.GetType(), Me.GetType.Name(), script, True)

在这种情况下,对象script是一个字符串,其中包含您要添加到页面的实际脚本。 script等于:

的示例
"var data = 1234"

然后它将包含在您的页面的响应中(在表单元素内),如下所示:

<script>var data = 1234</script>

答案 1 :(得分:0)

根据调用此代码的时间,您可以执行以下操作:

data.setValue(1, 1, "<%=ServerSideFunction()%>");

修改

你说你要将值分配给隐藏字段,为什么不在Javascript中从HiddenField中检索值?:

JavaScript的:

var value = document.getElementById("<%=HiddenField1.ClientID%>").value;

jQuery的:

var value = $("#<%=HiddenField1.ClientID%>").val();

如果你需要获得一个在页面回发之前无法使用的值,我会考虑使用PageMethods。

这是一篇解释如何使用PageMethods的文章:
http://blogs.microsoft.co.il/blogs/gilf/archive/2008/10/04/asp-net-ajax-pagemethods.aspx