[英]How do you use a return value from the server side (VB.NET) on the client side (JavaScript)?
[英]How to get client side value from server side using VB.NET?
我有一个 ASPX 页面,我在其中使用 JS 设置数据,但我在尝试从 VB 获取这些数据时遇到了麻烦。 这是我所拥有的简化版本...
ASPX:
<body onload="DoStuff();">
<script>
function DoStuff() {
var myvalue = document.getElementById('lblValue');
myvalue.textContent = "blah";
console.log (myvalue.textContent); // just to be sure that the value IS there
}
</script>
<div style="display:block">
<asp:label id="lblText" visible="true" runat="server">Text: </asp:label><asp:label id="lblValue" runat="server" visible="true" ></asp:label><br /><br />
<asp:label id="lblMsg" visible="true" runat="server" >Message: </asp:label><asp:label id="lblMsgValue" runat="server" visible="true" >Click button...</asp:label><br /><br />
<asp:Button id="btnGo" Text="Go" OnClick="btnGo_Click" runat="server"/>
</div>
</body>
ASPX.VB:
Protected Sub btnGo_Click(sender As Object, e As EventArgs)
lblMsgValue.Text = "The value is *" & lblValue.Text & "*"
End Sub
我总是一无所获,因为 output。 任何想法?
很有意思。 我从未注意到 label 设置客户端不会持续存在。
请注意,如果您使用后面的代码,请设置 label.Text,然后 label 会持续存在并在往返过程中存活。 但是,在JS中设置label? 好吧,您会立即看到浏览器更新,但是当您回帖时,您会丢失该文本。
这意味着您需要使用一个文本框 - 它们确实会持续存在,即使在客户端更改时也是如此。
所以,例如这段代码:
<asp:Button ID="Button2" runat="server"
Text="Js Code" Width="114px"
OnClientClick="setlabel();return false" />
<br />
<asp:Label ID="Label1" runat="server" Text="a" ClientIDMode="Static" ViewStateMode="Enabled"></asp:Label>
<br />
<asp:TextBox ID="TextBox1" runat="server" ClientIDMode="Static"></asp:TextBox>
<script>
function setlabel() {
vlable = document.getElementById("Label1");
vlable.innerHTML = 'Hello how are you';
vtextBox = document.getElementById("TextBox1")
vtextBox.value = "Js setup text box"
}
</script>
因此,在我们运行上述按钮 (js) 后,文本框和 label 都会更新,您会在浏览器中看到结果。
但是,现在放入另一个按钮,如下所示:
<asp:Button ID="Button1" runat="server" Height="26px" Text="Set Lable" Width="129px" />
和后面的代码:
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Debug.Print(Label1.Text)
Debug.Print("Text box = " & TextBox1.Text)
End Sub
Output(运行客户端js按钮后)。
a
Text box = Js setup text box
所以我们看到 label 的 Text="a",虽然它在浏览器中确实发生了变化,但当我们回发时,它在更改客户端时无法生存。
如前所述,如果后面的代码更改了 label - 它确实会持续存在,并且会在旅途中存活下来。 但 label 没有。
但是,文本框或隐藏字段以及大多数显示/能够保存数据或值的控件将继续存在 - 标签不是这些控件之一。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.