【问题标题】:Passing Variable from JS to VB.net将变量从 JS 传递到 VB.net
【发布时间】:2011-10-29 22:19:35
【问题描述】:

我有一个在 js 函数中获取值的变量。我需要将它的值作为双精度值放入 vb.net 变量中。

我尝试将变量放入标签中,然后从 vb.net 中的标签中获取它,如下面的代码所示:

JS 部分。

document.getElementById("Label1").innerText = nwLat;

然后在vb部分

   Dim nwLat As Double
    nwLat = Label1.Text
    MsgBox(nwLat)

它对我没有任何想法?出现的错误是 输入字符串的格式不正确。

干杯!

【问题讨论】:

  • 什么不起作用?代码会抛出异常吗?值是空的吗?我们需要更多细节......
  • 输入字符串的格式不正确。是错误
  • Label1是HTML中标签的实际id吗?
  • 标签的文本值将在 ViewState 中维护和检索,因此这不太可能起作用。尝试改用<input type="hidden" />

标签: javascript asp.net vb.net


【解决方案1】:

在 JavaScript 中:

__doPostBack(
    'edit',
    JSON.stringify({ ID: id, Code: code, AcctNo: acctNo })
);

在 VB.NET 中:

Protected Sub Page_Load(s As Object, e As EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
        '...
    Else
        Dim eventTarget As String = Request.Form!__EVENTTARGET
        Dim eventArgument As String = Request.Form!__EVENTARGUMENT
        If Not eventArgument Is Nothing AndAlso Not eventTarget Is Nothing AndAlso eventTarget = "edit" Then
            Dim jss As New JavaScriptSerializer()
            Dim ac As AccountCode = jss.Deserialize(Of AccountCode)(eventArgument)
        End If
    End If
End Sub

【讨论】:

    【解决方案2】:

    没有任何类型的 ajax 的最简单方法是使用隐藏字段。

    标记:

    <asp:HiddenField ID="nwLatHidden" runat="server" Value="" />

    JS:

    document.getElementById('nwLatHidden').value = '6.00'; // or of course the value from your function.

    .NET 在您的回发例程中:

    Dim nwLat As Double
    nwLat = nwLatHidden.Value
    

    【讨论】:

    • 在 nwLat = CDbl(nwLatHidden.value) 处输入字符串格式不正确
    • 你知道如何附加调试器吗? nwLatHidden 在尝试将其转换为 double 之前的值是多少?
    • 看我上面的编辑,检查结果看是否可以解析成double类型。
    【解决方案3】:

    您需要使用 ClientID 或 UniqueID:

    document.getElementById("<%=Label1.UniqueID%>").innerText = "Hi";
    

    【讨论】:

      猜你喜欢
      • 2017-06-03
      • 1970-01-01
      • 2021-11-30
      • 2019-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-17
      • 1970-01-01
      相关资源
      最近更新 更多