在.NET部分回发后更新javascript变量

时间:2017-04-21 14:51:15

标签: javascript asp.net vb.net

在我的游戏的vb.net中,我正在动态创建一个按钮:

In [183]:
df = pd.DataFrame(dict(A=[1, 2, 3]))
a = df['A'].copy()
a.index = a.index+1
print(a)
print(df['A'])
print(df['A'].index)
print(df.index)
print()
print(id(df['A']))
print(id(a))
print(id(df['A'].index))
print(id(a.index))

1    1
2    2
3    3
Name: A, dtype: int64
0    1
1    2
2    3
Name: A, dtype: int64
RangeIndex(start=0, stop=3, step=1)
RangeIndex(start=0, stop=3, step=1)

135125984
135165376
135165544
135125816

在游戏中单击按钮时,它会触发,并更新名为directionPath的变量。

当我运行Visual Studio调试器时,该部分工作正常。

我需要使用directionPath的值更新javascript中的变量clientside。

每当我点击按钮时,javascript部分都没有获得更新的值。

我阅读了部分回发并尝试了很多东西,但没有任何效果。

这甚至可能吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

服务器端代码可以注册使用ScriptManager类在回发后在客户端上运行的JavaScript代码。有许多RegisterXXX方法可供使用,我从来没有完全确定在哪种情况下使用哪种方法,但我已成功使用RegisterStartupScript(尽管即使对于是否通过也会感到困惑)在页面或某些控件中 - 例如UpdatePanel作为第一个参数。)

所以,您可能需要进行一些实验,但在directionPath_Click方法中尝试这样的事情:

ScriptManager.RegisterStartupScript(
    Me, ' The page
    Me.GetType(), ' The type for the page class
    "MyScriptKey", ' A unique identifier for the script
    "myjsvar = '" & myservervar.ToString() & "';", ' The JavaScript to run
    True ' Add <script> tags around the code
)