将值从Javascript传递回C#函数

时间:2013-11-04 11:29:10

标签: c# javascript jquery highcharts

我在Javascript中使用以下代码段 -

plotOptions: {
    series: {
        cursor: 'pointer',
        point: {
            events: {
                click: function() {
                    hs.htmlExpand(null, {
                        pageOrigin: {
                            x: this.pageX,
                            y: this.pageY
                        },
                        headingText: this.series.name,
                        maincontentText: 
                                'Value1:' + this.x +
                                ' Value2:' + this.y,
                        width: 300
                    });
                }
            }
        },
        marker: {
            lineWidth: 1
        }
    }
},

这是生成图表的函数的一部分,当用户点击图表上的某个点时,之前的代码会加载一个值为this.xthis.y的弹出窗口文本。

但是,点击该点后,我需要将this.xthis.y传递回C#以在函数中使用。

我厌倦了在函数顶部创建2个变量:var Xvar Y然后在点击点时将它们设置在函数中,如 -

 headingText: this.series.name,
 maincontentText: 
 'Value1:' + this.x +
 ' Value2:' + this.y,
 width: 300
 X = this.x
 Y = this.y

然而,添加该功能会导致错误 -

Error: 'chart' is undefined

4 个答案:

答案 0 :(得分:1)

我相信解决方案可能就像丢失逗号一样简单。

 headingText: this.series.name,
 maincontentText: 
 'Value1:' + this.x +
 ' Value2:' + this.y,
 width: 300,
 X = this.x,
 Y = this.y

答案 1 :(得分:0)

您可以添加两个文本框并设置display:none;

然后从X和Y设置文本框的值,并从后面的代码中使用它们

var x  = this.x;
var y  = this.y; 
$('#TextBox1').val($('#TextBox1').val().replace($('#TextBox1').val(), x));
$('#TextBox2').val($('#TextBox2').val().replace($('#TextBox2').val(), y));

答案 2 :(得分:0)

用逗号(,)分隔值。

width: 300,
 X = this.x,
 Y = this.y

你错过了逗号,这就是为什么它给出了错误。

答案 3 :(得分:0)

问题是你正在使用扩展器选项搞乱变量。这是正确的代码:

           click: function() {

                window.X = this.x;
                window.Y = this.y;

                hs.htmlExpand(null, {
                    pageOrigin: {
                        x: this.pageX,
                        y: this.pageY
                    },
                    headingText: this.series.name,
                    maincontentText: 
                            'Value1:' + this.x +
                            ' Value2:' + this.y,
                    width: 300
                });
            }