简体   繁体   中英

How can I use vb variable in javascript using asp.net web forms?

So, this is how my program looks like

在此处输入图片说明

The VB coding behind this is

Imports WebApplication1.login
Public Class Main
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim CleanRubric
    Dim XRubric
    Dim YRubric
    Dim Score = WebApplication1.login.Score
    CleanRubric = Rubric.Split(":")
    XRubric = Rubric(0)
    YRubric = Rubric(2)
    Label1.Text = "Hello! , Welcome: " & FullName & ", Here is your Report"
    Label2.Text = "Your Score: " & Score
    Label3.Text = "Notes: " & Notes
    Label4.Text = "Domain Notes: " & D_Notes
    Label5.Text = "X Rubric score is: " & XRubric
    Label6.Text = "Y Rubric score is: " & YRubric
    Label7.Text = "Does the teacher need to see you? " & UrgentChecker(Urgent)

End Sub
Function UrgentChecker(ByVal Urgent As Integer)
    If Urgent = 1 Then
        Return "Yes"
    ElseIf Urgent = 0 Then
        Return "No"
    Else
        Return "---Error--- : Please See Teacher"
    End If
End Function
End Class

Now, the html and javascript code is...

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Main.aspx.vb" Inherits="WebApplication1.Main" runat="server"%>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Results</title>
<link rel="stylesheet" type="text/css" href="theme2.css" />
<script type="text/javascript" src="http://cdn.amcharts.com/lib/3/amcharts.js"></script>
<script type="text/javascript" src="http://cdn.amcharts.com/lib/3/gauge.js"></script>
<script type="text/javascript" src="http://cdn.amcharts.com/lib/3/themes/dark.js"></script>

<!-- amCharts javascript code -->
<script type="text/javascript">
    <!--var score = document.getElementById("<%=Label2.ClientID%>").innerHTML;-->
    AmCharts.makeChart("chartdiv",
        {
            "type": "gauge",
            "pathToImages": "amcharts/images/",
            "faceBorderAlpha": 2,
            "faceBorderWidth": 2,
            "marginBottom": 0,
            "marginTop": 40,
            "startDuration": 0,
            "color": "#E7E7E7",
            "fontSize": 9,
            "handDrawScatter": 0,
            "theme": "dark",
            "arrows": [
                {
                    "axis": "Not set",
                    "id": "GaugeArrow-1",
                    "nailAlpha": 0.44,
                    "nailBorderAlpha": 0.58,
                    "nailBorderThickness": 5,
                    "nailRadius": 30,
                    "radius": "98%",
                    "startWidth": 12,
                    "value": 2
                }
            ],
            "axes": [
                {
                    "axisThickness": 1,
                    "bottomText": "Score",
                    "bottomTextFontSize": 18,
                    "bottomTextYOffset": 25,
                    "endAngle": 112,
                    "endValue": 4,
                    "id": "GaugeAxis-1",
                    "topTextFontSize": -1,
                    "topTextYOffset": -4,
                    "valueInterval": 1,
                    "bands": [
                        {
                            "alpha": 0.7,
                            "color": "#00CC00",
                            "endValue": 1,
                            "id": "GaugeBand-1",
                            "startValue": 0
                        },
                        {
                            "alpha": 0.7,
                            "color": "#FF0000",
                            "endValue": 2,
                            "id": "GaugeBand-2",
                            "startValue": 1
                        },
                        {
                            "alpha": 0.7,
                            "color": "#0000FF",
                            "endValue": 3,
                            "id": "GaugeBand-3",
                            "startValue": 2
                        },
                        {
                            "alpha": 0.7,
                            "color": "#DAA520",
                            "endValue": 4,
                            "id": "GaugeBand-4",
                            "startValue": 3
                        }
                    ]
                }
            ],
            "allLabels": [],
            "balloon": {
                "offsetX": 12
            },
            "titles": []
        }
    );
</script>
</head>
<body>
<form id="form1" runat="server">
    <h1>
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    </h1>

I want it to represent the value of the students score, I added

var score = document.getElementById("<%=Label2.ClientID%>").innerHTML; But my graph immediately disappeared like this

在此处输入图片说明

help :) (The student names are different in pictures that is fine, thats all database stuff)

var score = document.getElementById("Label2").innerText;

Edit:

ASP.NET

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    Page.ClientScript.RegisterStartupScript(Me.GetType(), Nothing, "test();", True)
End Sub

JavaScript

  <script type="text/javascript">
    var score;
    function test() {
        score = document.getElementById("Label2").innerText;
        AmCharts.makeChart("chartdiv",
    {
        "type": "gauge",
        "pathToImages": "amcharts/images/",
        "faceBorderAlpha": 2,
        "faceBorderWidth": 2,
        "marginBottom": 0,
        "marginTop": 40,
        "startDuration": 0,
        "color": "#E7E7E7",
        "fontSize": 9,
        "handDrawScatter": 0,
        "theme": "dark",
        "arrows": [
            {
                "axis": "Not set",
                "id": "GaugeArrow-1",
                "nailAlpha": 0.44,
                "nailBorderAlpha": 0.58,
                "nailBorderThickness": 5,
                "nailRadius": 30,
                "radius": "98%",
                "startWidth": 12,
                "value": 2
            }
        ],
        "axes": [
            {
                "axisThickness": 1,
                "bottomText": "Score",
                "bottomTextFontSize": 18,
                "bottomTextYOffset": 25,
                "endAngle": 112,
                "endValue": 4,
                "id": "GaugeAxis-1",
                "topTextFontSize": -1,
                "topTextYOffset": -4,
                "valueInterval": 1,
                "bands": [
                    {
                        "alpha": 0.7,
                        "color": "#00CC00",
                        "endValue": 1,
                        "id": "GaugeBand-1",
                        "startValue": 0
                    },
                    {
                        "alpha": 0.7,
                        "color": "#FF0000",
                        "endValue": 2,
                        "id": "GaugeBand-2",
                        "startValue": 1
                    },
                    {
                        "alpha": 0.7,
                        "color": "#0000FF",
                        "endValue": 3,
                        "id": "GaugeBand-3",
                        "startValue": 2
                    },
                    {
                        "alpha": 0.7,
                        "color": "#DAA520",
                        "endValue": 4,
                        "id": "GaugeBand-4",
                        "startValue": 3
                    }
                ]
            }
        ],
        "allLabels": [],
        "balloon": {
            "offsetX": 12
        },
        "titles": []
    }
);
    }
</script>

You need to create public property named Score , or change that score from Dim to Public , declare outside page_load and inside the class.

Then use that variable in aspx like this - var score = "<%=Score%>"; .

Like following

Public Class Main
Inherits System.Web.UI.Page

Public Score = WebApplication1.login.Score

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim CleanRubric
    Dim XRubric
    Dim YRubric

    CleanRubric = Rubric.Split(":")
var score = document.getElementById("<%=Label2.ClientID%>").innerHTML;

This code does work. You have to call it after the values have already been set. Have you tried moving your javascript to the bottom of the page?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM